2012-01-21 11 views
2

私はRazorの構文とjQueryに問題があります。空のテーブルにいくつかの項目を追加しようとしています。 はここに(私はここでそれをフォーマットしました)RazorとjQuery、テーブルを追加する

 @{ 
      if (@ViewData["a"] != null) 
      { 
       var tab = @ViewData["a"] as List<string>; 
       foreach(var sp in @tab) 
       { 
        <text> 
         $('#files-table').append(@Html.Raw(@sp)); 
        </text> 
       } 
      } 
     } 

@sp変数は以下のようなコードです:

<tr> 
    <td> 
     <a class='some-class' my-type='abc' my-id='1' 
      target='_blank' href='/Home/a'>name123</a> 
    </td> 
    <td> 
     <label class='del' f-id='abc'>lorem</label> 
    </td> 
</tr> 

表が空のままです。 .append('@Html.Raw(@sp)'),.append(@Html.Raw(sp))など多くのオプションを試しましたが、成功しませんでした。

+0

結果のHTMLの外観はどうですか?また、実行中にJSエラーが発生していますか? – bzlm

+0

結果は ''行のない空のテーブルになります。私はそのコードを使用してエラーが発生しない – Tony

答えて

3

@は、htmlとコードの間で移行する場合にのみ使用してください。それ以外の場合、あなたはどちらか一方にいる間、あなたはそれを必要としません。私はまた、引用符でHtml.Rawの結果を同封することを

@if (ViewData["a"] != null) 
{ 
    var tab = (List<String>)ViewData["a"]; 
    foreach (var sp in tab) 
    { 
    <text> 
     $('#files-table').append('@Html.Raw(sp)'); 
    </text> 
    } 
} 

Screenshot http://img849.imageshack.us/img849/3250/razordemo.png

注:そうは言っても、これを試してみます。ラッピングの引用符を妨げる可能性のある引用符がspに存在しないことを安全に守るために、さらに多くのことを行う必要があります。

データを前もって用意してレンダリングできるのであれば、レンダリングするためにクライアントに渡す理由(エラーが発生しやすく、待ち時間と依存関係の両方を作成する)自分でレンダリングしないでください。それは効率的ではないようです...

+0

HTMLコードが文字列として扱われていないため、引数リストの後に '不足しているエラーが表示されます。 – Tony

+0

@トニー:私の答えが更新されました。解析エラーはありません。他に何か間違いがあるかもしれませんか? Razorは、IDEでは、コードとHTMLが適切に解析されたことを示すバックグラウンドを提供する必要があります。 –

1

なぜコントローラに行を構築していますか?あなたがテーブルの上に表示し、このようなビューでHTMLテーブルを構築したいデータとオブジェクトのリストを返してみ :

@if (ViewData["a"] != null) 
{ 
    var list = (List<YourObject>)ViewData["a"]; 
    foreach (YourObject item in list) 
    { 
     <tr> 
     <td> 
      <a class='some-class' my-type='abc' my-id='1' target='_blank' href='/Home/a'>@item.name</a> 
     </td> 
     <td> 
      <label class='del' f-id='abc'>@item.phone</label> 
     </td> 
     </tr> 
    } 

} 

はまた、代わりのViewDataを使用しての、ビュー、コントローラからあなたのデータを送信して考えますカスタムモデルを使用します。

関連する問題