0

我对 ASP.NET MVC 架构还是有点陌生​​。我有一个数据编辑页面,其中包括一个隐藏的输入。在测试我的页面后,“保存”按钮没有做任何事情,经过一些研究后发现这是一个客户端验证问题。

在页面中评论以下行后:

 @*@Html.HiddenFor(model => model.ID)*@

(其中 ID 是 GUID),页面已验证并发布。

据我回忆,脚手架将这段代码放在了我的视野中。我只需要知道如何解决这个问题,以便将 ID 字段正确发送回控制器,并想知道为什么它没有验证。

这是我的视图代码:

@using (Html.BeginForm()) 
{
    @Html.ValidationSummary(true)

    <fieldset>

        <div class="object_basics">
      @Html.HiddenFor(model => model.ID)

        <div class="editor-label">
            @Html.LabelFor(model => model.Title)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Title)
            @Html.ValidationMessageFor(model => model.Title)
        </div>


       <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>

}
4

3 回答 3

1

隐藏字段的客户端验证不起作用,因为 jQuery 验证忽略所有隐藏标签。
你必须定义HiddenRequiredValidator类来实现你的目标。

您可以在此处阅读解决此问题的解决方案

于 2013-10-12T08:35:14.143 回答
1

您是否尝试为 ID 添加验证消息?

@Html.ValidationMessageFor(model => model.ID)
于 2013-01-18T15:14:26.833 回答
0

在视图中,更新自:

@using (Html.BeginForm()) 

@using (Html.BeginForm(new{ID = model.ID})) 

移除隐藏元素 [@Html.HiddenFor(model => model.ID)]。

在您的控制器中,更新操作属性,如下所示

public ActionResult YourActionName(string ID, string Title)

希望这能回答您的问题。

干杯,丹尼

于 2013-01-17T00:30:45.897 回答