0

モバイルの詳細をレンダリングするAsp.netMVC3ページが1つあります。このページは、コメントモデルを使用してレンダリングされるコメントフォームもホストします。Nameという名前の1つのフィールド、つまりMobile.NameとComment.Nameは、両方のモデルで共通です。

最終出力では、Mobile.Nameの値で満たされたComment.Nameテキストボックスが常に表示されます。なぜこれが起こっているのかわからない。

正確な問題は以下のリンクで見ることができます。コメントタブを確認してください

問題のURL

コメントの編集 フォームは、次のような部分ビューを使用してレンダリングされます。

@using (Ajax.BeginForm("Savecomment", new AjaxOptions() { UpdateTargetId = "FormContainer" , OnSuccess = "$.validator.unobtrusive.parse('form');" }))
{
       @Html.HiddenFor(m => m.MobileId)
        <div class="row">
        <div class="five columns">
          <label >Your name:</label>
          @Html.TextBox("Name"," ")
          @Html.ValidationMessage("Name")
        </div>
        </div>
4

1 に答える 1

1

問題は、パーシャルビューをどのようにレンダリングしているかに関連している可能性が高いです。モバイルとコメントの両方を含む親モデルがあると思いますか?コメントモデルを部分ビューに渡しますか?このため、部分ビューでは、フィールドの名前がプライマリモデルであるかのようにレンダリングされます。

部分的なビューではなく、EditorTemplateを使用してコメントとモバイルをレンダリングすることをお勧めします。エディターテンプレートは、部分ビューよりもコンテキストを認識します。

于 2012-07-22T05:23:17.223 に答える