空のasp.net mvc 3アプリケーションを作成できます。 コードはHtml.BeginFormの奇妙な動作
namespace MvcApplication1.Controllers
{
public class MyModel
{
public int Id { get; set; }
}
public class HomeController : Controller
{
public ActionResult Index()
{
return Index1(new MyModel() {Id = 100});
}
public ActionResult Index1(MyModel model)
{
var nm = new MyModel();
nm.Id = model.Id + 1;
return View("test", nm);
}
}
テストと呼ばれる共有ビューを作成することができますです。ビューのコードは、我々はすべてOKですフォームを初めて投稿するとき
@using MvcApplication1.Controllers
@model MyModel
@if (Model != null)
{
using (Html.BeginForm("Index1", "Home", FormMethod.Post, new { autocomplete = "off" }))
{
<div id="compareQuestions">
<p>@Model.Id</p>
@Html.HiddenFor(m => m.Id)
@Html.TextBoxFor(m => m.Id)
<input type="submit" value="save"/>
</div>
}
}
ですが、それは間違ったテキストボックスに最初のポスト値の後にリロードするとき。この値を変更してコントローラーにポストを保存すると、誤った値でモデルが生成されますが、入力されません。これはどのように可能ですか?
は、隠しフィールドの値は101ですか?そうでない場合は、不正確な値は何か、正しい値は何か? – danludwig
eah、間違った値は101 – Ph0en1x
何が '
@ Model.Id
'によってレンダリングされますか? '@ Html.HiddenFor(m => m.Id)'によってレンダリングされるものは? '@ Html.TextBoxFor(m => m.Id)'はどうでしょうか? – danludwig