我设置了一个简单的dotnetfiddle,但是无法让模型出现在HttpPost动作中(认为它被调用,因为我可以手动设置vm.Name值,如果我对其进行硬编码以设置值)。
因此,如果您运行小提琴并在“名称”框中指定一个值并单击“保存”,而不是看到刚刚输入的名称,则会返回返回的初始值(“姓氏”)。如果在VS中调试它,则模型没有它的数据集。
记录代码:
模型
public class Parent
{
public String Name;
public Parent()
{
Name = "Surname";
}
}
控制器
public class FormsController : Controller
{
// GET: Forms
public ActionResult Index()
{
var p = new Parent();
return View(p);
}
[HttpPost]
public ActionResult Index(MobileMvc.Models.Parent vm)
{
//vm.Name = "dddd";
return View(vm);
}
}
查看
@model MobileMvc.Models.Parent
@{
ViewBag.Title = "Index";
}
@using (Html.BeginForm())
{
@Html.AntiForgeryToken()
<table class="table">
<tr>
<td>
@Html.LabelFor(model => model.Name, htmlAttributes: new { @class = "control-label col-md-10" })
</td>
<td>
@Html.TextAreaFor(model => model.Name, new { @class = "form-control", @style = "width: 100%" })
@Html.ValidationMessageFor(model => model.Name, "", new { @class = "text-danger" })
</td>
</tr>
</table>
<div class="form-group">
<div class="col-md-offset-5 col-md-7">
<input type="submit" value="Save" class="btn btn-default" />
</div>
</div>
}
由于
ANSWER
呸!应该已经制作了字段属性 - 我浪费了几个小时的时间,并意识到我在这里发布帖子的5分钟内完成了什么 - 抱歉!