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

问题描述 投票:1回答:1
    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所以它不是必须兼容吗?

asp.net razor
1个回答
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。

© www.soinside.com 2019 - 2024. All rights reserved.