2017-10-20 4 views
-2

コントローラに関数を呼び出してHTMLをビルドするAjaxでロードされる情報ボックスがいくつかあります。MVCビューでjQueryを使用してHtml.BeginFormを追加

これらの情報ボックスには、スタティックテキストをフォームに置き換えるための編集機能が必要です。私は通常のHTMLでこれをやっていく方法を知っていますが、Html.BeginFormを使用してコントローラで処理できるようにしたいと思います。

これは、これは私が私のフォーム

@using (Html.BeginForm("Index", "Customer", FormMethod.Post, new { @class = "form-horizontal" })) 
{ 
    @model CustomerInfo 

    <div class="form-group"> 
     @Html.TextAreaFor(m => m.InfoText, new { @class = "form-control col-12-md", @style = "max-width: none", @rows = "5" }) 
    </div> 
    <div class="form-group"> 
     @Html.DropDownListFor(m => m.InfoTypeId, new SelectList(InfoTypeList, "Value", "Text"), new { @class = "form-control", @style = "max-width: none" }) 
    </div> 
    <input type="submit" value="Gem" class="btn btn-primary" /> 
} 
を構築する方法である

$.ajax({ 
    url: '@Url.Action("GetCustomerInfoById/")' + id, 
    type: 'post', 
    traditional: true, 
    dataType: 'json', 
    success: function (result) { 
     $.each(result.CustomerInfo, function (index, customerInfo) { 
      $('#infoBox' + customerInfo.ID).html(/* html form goes here */); 
     }); 
    } 
}) 

(それは、静的な情報ボックスをロードするための1とほぼ同じコードだ)私は私の形でロードしたい方法です

+0

質問は何ですか?あなただけでなく、すべてのプログラマーを助けるために存在します。似たような問題を抱えている人が簡単にあなたの投稿を見つけることができる明確な質問にあなたの投稿の件名を言い換えてください。 – Jacob

+0

mvcヘルパークラスは、文字通り、実行時にコンパイルされる単純に省略形のサーバ側のhtmlです。 jqueryにhtmlマークアップを書くだけで、同じことが評価されます。 –

+0

@Jacob OPが質問を定義しました。彼らは、mvcヘルパークラスをフォームにjQueryを使用して追加したいのですが、それは意味がありません。 –

答えて

0

customerInfo.IDをパラメーターとして使用して新しいController ActionMethodを作成すると、フォームを部分ビューとしてレンダリングすることができます。

フォームにIDの隠しフィールドを指定する必要があります。そのため、フォームポストは相互に区別できます。

コールをループ内で使用して新しいActionMethodを呼び出します。それぞれの呼び出しには、結果が.html()ステートメントに渡されます。

+0

それは理にかなっています。私は質問をした直後に突然オフィスを出なければならないので、まず月曜日に試してみることができます。 – HappyGuyDK

関連する問題