文字列にバインドするASP.NETRazorビューがあります。その非常に単純です:
@model string
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
Hello, @Model
@using(Html.BeginForm())
{
<fieldset>
<label for="name" style="color: whitesmoke">Name:</label>
<input type="text" id="name"/>
<br/>
<input type="submit" value="Submit"/>
</fieldset>
}
そして、単純なコントローラー:
[HttpGet]
public ActionResult Index()
{
object model = "foo";
return View(model);
}
private string name;
[HttpPost]
public ActionResult Index(string name)
{
return View();
}
送信ボタンを押すと、インデックス投稿アクションの結果がトリガーされますが、「文字列名」パラメーターがnullです。入力IDがコントローラーのパラメーターの名前と一致するため、Razorは、ビューからこのプロパティをコントローラーに自動的にバインドするのに十分スマートではありませんか?そうでない場合、これをバインドするにはどうすればよいですか?Html.HiddenFor(m => m.Foo)を使用できるプロパティを持つモデルを知っていますが、プロパティがないため、このメソッドを適切に呼び出す方法がわかりません。Html.Hiddenを呼び出して適切に設定できます。 ("name"、 "foo")ですが、ここで値を渡す方法がわかりません。私は次のようなjquery呼び出しを使用できることを知っています:
@Html.Hidden("name", "$('input[id=name]').val())");
これは文字通りjquery文字列を値としてコントローラーに送信します...この時点で何をすべきかわかりません。ありがとう!