让我们创建空的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