Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 为什么隐藏的输入会丢失我的视图模型';谁的财产价值?_Asp.net Mvc_Razor - Fatal编程技术网

Asp.net mvc 为什么隐藏的输入会丢失我的视图模型';谁的财产价值?

Asp.net mvc 为什么隐藏的输入会丢失我的视图模型';谁的财产价值?,asp.net-mvc,razor,Asp.net Mvc,Razor,当我使用以下Razor标记尝试将我的PageCount值发送到客户端时,输入值呈现为0: @using (Html.BeginForm("Index", "Gallery", FormMethod.Post, new { id = "search-form" })) { @Html.HiddenFor(m => m.PageCount) 尽管PageCount的值为2,但呈现如下: <input data-val="true" data-val-number="The fi

当我使用以下Razor标记尝试将我的
PageCount
值发送到客户端时,输入值呈现为0:

@using (Html.BeginForm("Index", "Gallery", FormMethod.Post, new { id = "search-form" }))
{
    @Html.HiddenFor(m => m.PageCount)
尽管
PageCount
的值为2,但呈现如下:

<input data-val="true" data-val-number="The field PageCount must be a number." data-val-required="The PageCount field is required." id="PageCount" name="PageCount" type="hidden" value="0">

当我回到几乎所有纯HTML时,如下所示:

<input type="hidden" name="PageCount" id="PageCount" value="2">


Razor w.r.t.隐藏输入是否存在一些有趣的行为,或者是什么?

您是否在POST controller操作中设置了
PageCount
值?如果是,请确保已从ModelState中删除旧值:

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    ModelState.Remove("PageCount");
    model.PageCount = 2;
    return View(model);
}
这是因为HTML帮助程序在绑定时使用最初发布的值,而不是来自模型的值。因此,如果要在控制器操作中修改旧值,则应将其从ModelState中删除


这不仅仅局限于HiddenFor helper。这是所有生成输入字段的HTML帮助程序的工作方式。

是否在POST controller操作中设置
PageCount
值?如果是,请确保已从ModelState中删除旧值:

[HttpPost]
public ActionResult Index(SomeViewModel model)
{
    ModelState.Remove("PageCount");
    model.PageCount = 2;
    return View(model);
}
这是因为HTML帮助程序在绑定时使用最初发布的值,而不是来自模型的值。因此,如果要在控制器操作中修改旧值,则应将其从ModelState中删除


这不仅仅局限于HiddenFor helper。这是所有生成输入字段的HTML帮助程序的工作方式。

请发布用于填充视图模型中数据的get操作方法代码。另外,您用来生成
的代码是什么?@Gromer,我手工编写了代码,因为生成的代码似乎已损坏。请发布您的get-action方法代码,用于填充视图模型中的数据。另外,您用来生成
的代码是什么?@Gromer,我手工编写了代码,因为生成的代码似乎已损坏。是的,我正在POST中设置它!这是一个搜索操作,除了GET中的一个小垫片外,所有内容都设置在POST中。我以前从未遇到过这个警告。谢谢是的,我正在把它设置在POST中!这是一个搜索操作,除了GET中的一个小垫片外,所有内容都设置在POST中。我以前从未遇到过这个警告。谢谢