ASP.Net Razor页面验证不返回值

时间:2017-12-20 17:08:11

标签: asp.net razor

    public IActionResult OnPost() {
        if (ModelState.IsValid) {
            \\ save it
        }
        return Page();
    }

在我的剃刀代码中,我已经检查了模型是否有效。这样可以正常工作,如果模型有效,它会保存,如果没有,它会转到return Page();,这就是我能找到的所有文档所说的。

问题是如果模型无效,return Page();会重新加载页面,因此我丢失了所有输入的值,并且没有从模型中加载任何验证消息。

我应该使用什么代替return Page();来显示验证消息并保留无效信息?

-------------------使用ViewModel编辑

所以这就是我的OnPost

[BindProperty]
public theVM.ModelinVM theVMInstance { get; set; }
public IActionResult OnPost() {
    if (ModelState.IsValid) {
        \\ save it
    }
    return theVMInstance;
}

这是视图模型

public class theVM {
    public IQueryable<originalModel> ModelinVM { get; set; }

}

return theVMInstance; 现在说 Cannot implicitly convert type 'theVM.ModelinVM' to 'Microsoft.AspNetCore.Mvc.IActionResult'.

它期待IActionResult所以它不必与之兼容吗?

1 个答案:

答案 0 :(得分:0)

它没有用,因为我没有把

<script src="~/lib/jquery/dist/jquery.js"></script>
<script src="~/lib/jquery-validation/dist/jquery.validate.js"></script>
<script src="~/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js"></script>

位于.HTML页面的顶部。

我不需要OnPost()方法,jQuery为我做了ejob。