6

カスタム ヘルパー メソッドを使用して部分ビューを表示しようとしています。唯一の問題は、この構文の問題を乗り越えられないことです。この cshtml ファイルのモデル セットは、Operation として定義したモデルの IEnumerable コレクションです。これは簡単に修正できると確信しています。これが私が見ているものの例です:

私はこのコードブロックを持っています:

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }

これにより、実行時に次のエラーが発生します。

    Unexpected "{" after "@" character. Once inside the body of a code block (@if {}, @{}, etc.) you do not need to use "@{" to switch to code.

しかし、foreach ステートメントの前にある @ 記号を削除すると、すべてがプレーン テキストとして解釈されます。そこで、次のように Html の前に @ を配置してみました。

    @using(Html.BeginForm()) {
       <div id="editor_rows">
          @foreach (var item in Model){
             @Html.RenderPartial("OperationEditorRow", item);
          }
       </div>
    }

これにより、次のようなコンパイル エラーが返されます。

    Cannot implicitly convert type void to object

ここからプロジェクトを実行すると、次のようなランタイム エラーが発生します。

    The best overloaded method match for 'System.Web.WebPages.WebPageExecutingBase.Write(System.Web.WebPages.HelperResult)' has some invalid arguments

これは前のエラーに関連していると思います。誰かが私に提案があれば、助けてください。

4

2 に答える 2

1

問題が解決しました。私は同僚と一緒にこれに取り組みました。部分ビュー内の問題を指摘しているwriteメソッドに関するエラーが判明しました。私はその中のコードのブロックの周りに@{}を使用していましたが、これはおそらく他の構文エラーもスローしていました。回答ありがとうございます。

于 2012-06-26T12:59:14.260 に答える
0

@{RenderPartial...} のようにレンダー呼び出しの前後に {} を追加します。

于 2012-06-26T04:42:25.890 に答える