Asp.net mvc MVC4 Post上的空数据
很明显,我在这里遗漏了一些东西,我一辈子也弄不清是什么。 我可以很好地填充模型并将其发送到视图,但在post中,大多数数据都是null或默认值 我用/Test/Create?a1=5&a2=6&shell=7强制输入Create-GET 这可以很好地初始化测试实体。POST具有名称和CatId,但其他属性为空 任何帮助都将不胜感激 模型 看法 你需要使用Asp.net mvc MVC4 Post上的空数据,asp.net-mvc,Asp.net Mvc,很明显,我在这里遗漏了一些东西,我一辈子也弄不清是什么。 我可以很好地填充模型并将其发送到视图,但在post中,大多数数据都是null或默认值 我用/Test/Create?a1=5&a2=6&shell=7强制输入Create-GET 这可以很好地初始化测试实体。POST具有名称和CatId,但其他属性为空 任何帮助都将不胜感激 模型 看法 你需要使用 @Html.HiddenFor(model => model.Attribute1) 要将值传递给控制器而不是DisplayFor()
@Html.HiddenFor(model => model.Attribute1)
要将值传递给控制器而不是DisplayFor()
请更改此代码
<p>
@Html.LabelFor(model => model.Attribute1)
@Html.DisplayFor(model => model.Attribute1)
</p>
<p>
@Html.LabelFor(model => model.Attribute2)
@Html.DisplayFor(model => model.Attribute2)
</p>
@LabelFor(model=>model.Attribute1)
@DisplayFor(model=>model.Attribute1)
@LabelFor(model=>model.Attribute2)
@DisplayFor(model=>model.Attribute2)
为此:
<p>
@Html.LabelFor(model => model.Attribute1)
@Html.HiddenFor(model => model.Attribute1)
@Html.DisplayFor(model => model.Attribute1)
</p>
<p>
@Html.LabelFor(model => model.Attribute2)
@Html.HiddenFor(model => model.Attribute2)
@Html.DisplayFor(model => model.Attribute2)
</p>
@LabelFor(model=>model.Attribute1)
@Html.HiddenFor(model=>model.Attribute1)
@DisplayFor(model=>model.Attribute1)
@LabelFor(model=>model.Attribute2)
@Html.HiddenFor(model=>model.Attribute2)
@DisplayFor(model=>model.Attribute2)
它应该很好用
基本上,它添加了
,因此在您单击“提交”按钮后,它将包含在您的帖子中。DisplayFor模板是什么样子的,如果有的话?属性26您不能使用Display(For)
方法创建html输入元素。创建html输入元素的唯一内置方法是Editor(For)
和Hidden(For)
。这就是想法。我想显示属性,但不允许用户更改值。我希望不必为具有30多个属性的类执行此操作,但很好。谢谢我希望对于拥有30多个属性的类不必这样做,但是哦,好吧。谢谢
@Html.HiddenFor(model => model.Attribute1)
<p>
@Html.LabelFor(model => model.Attribute1)
@Html.DisplayFor(model => model.Attribute1)
</p>
<p>
@Html.LabelFor(model => model.Attribute2)
@Html.DisplayFor(model => model.Attribute2)
</p>
<p>
@Html.LabelFor(model => model.Attribute1)
@Html.HiddenFor(model => model.Attribute1)
@Html.DisplayFor(model => model.Attribute1)
</p>
<p>
@Html.LabelFor(model => model.Attribute2)
@Html.HiddenFor(model => model.Attribute2)
@Html.DisplayFor(model => model.Attribute2)
</p>