ASP.NET MVCを初めて使用しています。私は、送信ボタンとhtmlのselect要素を持つ単純なフォームを持っていて、2つの項目が入っています。フォームが私のコントローラに投稿されると、すべてのフォーム値はnullになります。私は$ .POSTを代わりに使ってみました。そして、私が送信しているid変数は、コントローラに到達するとnullです。ここに私のコードは次のとおりです。ASP.NET MVCのコントローラに投稿するとドロップダウンリストの値がnullになる
HTML
@using (Html.BeginForm("SetOptionForUser", "MyController", FormMethod.Post, new { @class="form-inline" }))
{
@Html.AntiForgeryToken()
<div class="text-center">
<div class="form-group">
<select id="ddlSelect" class="form-control">
@foreach (var item in Model.Persons)
{
<option value="@item.Id">@item.Name</option>
}
</select>
</div>
<button type="submit" class="btn btn-primary" id="btnEnter">Go</button>
</div>
}
MVCコントローラ
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult SetOptionForUser(FormCollection form)
{
string option = form["ddlSelect"].ToString(); //null error
return RedirectToAction("AnotherAction", "AnotherController");
}
形式では何も送信されていないようです。私が間違っているのは何
$("#btnEnter").click(function (e) {
var optionId = $("#ddlSelect").val(); //this get val correctly
$.post(@Url.Action("SetOptionForUser", "MyController"), optionId);
});
MVCコントローラJS方法
**MVC Controller**
[ValidateAntiForgeryToken]
[HttpPost]
public ActionResult SetOptionForUser(int optionId) //null
{
string option = optionId.ToString(); //null error
return RedirectToAction("AnotherAction", "AnotherController");
}
ため
JS:私もこれを試してみましたか?