ASP.NETコントローラモデルを、データをFormDataとして送信するajaxリクエストと自動的にバインドすることは可能ですか?私の提供例でモデルのバインドJavaScript形式のFormDataとAsp.netコントローラのモデル
私はがHttpContext.Current.Request.Form [「PROPERTY_NAME」] がデータを受信するために使用するために必要だから私はすべて、送信されたフォームデータと同一のモデルを提供する場合値はnullに等しい。
またはASP.NETモデルバインディングはJSON要求でのみ機能しますか?
簡単なコードの怒鳴る:
ビュー:
@using (Html.BeginForm("Post", "Test", FormMethod.Post, new { @class="test-form"}))
{
<input type="text" name="firstName"/>
<input type="text" name="lastName"/>
<button type="submit">Submit</button>
}
スクリプト:
<script>
$('.test-form').on('submit', function (e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
url: "@Url.Action("TestPost", "Test")",
method: "POST",
data: formData,
processData: false,
success: function(e){
}
});
});
</script>
コントローラー:
[HttpPost]
public ActionResult TestPost()
{
var firstname = HttpContext.Current.Request.Form["firstName"];
var lastName = HttpContext.Current.Request.Form["lastName"];
return PartialView("TestPost");
}
が機能しないコントローラ:
public class User
{
public string firstName { get; set; }
public string lastName { get; set; }
}
[HttpPost]
public ActionResult TestPost(User model) //model values are null
{
return PartialView("TestPost");
}
使用Ajax.BeginFormこのリンクをチェックしhttp://www.hanselman.com/blog/ASPNETMVCPreview4UsingAjaxAndAjaxForm.aspx – rashfmnb
あなたは 'ContentTypeを忘れてしまった:私のAJAX要求は、JSファイルであればどのような@rashfmnb – Musa
'、偽の? – Stralos