【问题标题】:Post a model property with DisplayFor on submit在提交时使用 DisplayFor 发布模型属性
【发布时间】:2012-11-08 22:54:44
【问题描述】:

我的一个视图页面通过控制器传入了一个模型,所以我可以写:
@Html.DisplayFor(m => m.FirstName) 显示模型的名字。当我尝试使用

在页面上提交表单时
@using (Html.BeginForm("CreateUser", "Controller", FormMethod.Post, new { UserViewModel = Model }))

我看看我的模型

[HttpPost]
public virtual ActionResult CreateUser(UserViewModel model)
{
    //model.FirstName is blank

无论如何我可以让 model.FirstName 不为空吗?通过一些如何通过我最初通过的模型?我可以设置一堆隐藏的评论,但如果有更好的方法会非常有帮助

编辑:DisplayFor 只是显示模型可访问的示例。我实际上有大约 15 个字段,并且我正在通过多种形式尝试填充模型。隐藏是唯一的方法吗?我可以隐藏整个模型吗?

【问题讨论】:

    标签: asp.net-mvc razor viewmodel displayfor


    【解决方案1】:

    您可以使用隐藏输入。

    @Html.HiddenFor(m => m.FirstName)
    

    类似于:

    <input type="hidden" value="{the first name}" name="FirstName" id="FirstName" />
    

    【讨论】:

    • 哦,这只是一个示例,表明该模型是可访问的。我实际上有大约 15 个字段,并且我正在通过多种形式尝试填充模型。隐藏是唯一的方法吗?我可以隐藏整个模型吗?
    • @FreshJays,是的,很抱歉,您必须为所有模型属性使用隐藏输入。顺便说一句,我所做的只是将模型主键保存为隐藏输入并从数据库中查询服务器中的该模型。虽然不确定这是你的情况......
    • 是的,这行得通,我试图直到最后才让数据库参与进来,但这肯定行得通
    猜你喜欢
    • 1970-01-01
    • 2019-03-25
    • 2011-04-28
    • 2015-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-23
    相关资源
    最近更新 更多