如何从Razor视图中检查ModelState.IsValid

Sam*_*tar 94 asp.net-mvc razor asp.net-mvc-3

我的动作方法中有以下内容:

       if (!ModelState.IsValid)
        return View(vm);
Run Code Online (Sandbox Code Playgroud)

在视图中,如果模型状态无效,我希望不提供允许删除的提交密钥.有没有办法可以做到这一点?视图中是否有模型状态?

更新:我根据给出的答案实现了这个:

            <div class="adm_td0" style=" padding: 0;">  
            @if (ViewData.ModelState.IsValid) {
                <input type='submit' value='Delete' name='SubmitAction' />
            }
                <input type='submit' value='Cancel' name='SubmitAction' />
            </div>
Run Code Online (Sandbox Code Playgroud)

Dar*_*rov 203

视图中是否有模型状态?

当然:

@if (!ViewData.ModelState.IsValid)
{
    <div>There are some errors</div>
}
Run Code Online (Sandbox Code Playgroud)

  • 没关系,我想通了:Html.ViewData.ModelState ["PropertyName"].错误 (13认同)

vcs*_*nes 10

在视图中需要这个并不常见,但你可以像这样访问它:

@ViewData.ModelState.IsValid
Run Code Online (Sandbox Code Playgroud)

  • @NormanH,当你在*view*中使用`@ViewData.ModelState.IsValid`时,它会告诉你在显示视图之前处理的模型的状态.所以流程是:查看A - >按下按钮并发布 - >控制器:方法B之前的模型绑定 - >无效状态 - >方法B返回视图B - >`@ ViewData.ModelState.IsValid`将告诉绑定之前发生了什么方法B. (2认同)