讓我們創建空的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);
}
}
允許創建名爲測試共享視圖。查看代碼是
@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 2012-01-12 20:41:47
呃,錯誤的值是101 – Ph0en1x 2012-01-12 20:44:25
'
@ Model.Id
'呈現的是什麼? 「@ Html.HiddenFor(m => m.Id)'呈現的是什麼?那麼'@ Html.TextBoxFor(m => m.Id)'? – danludwig 2012-01-12 20:54:43