.NET Core PageModel类验证后重定向及返回值错误解决
解决方案
你的代码报错是因为OnPostSubmit方法声明返回ActionResult,但当person.name为null时,没有任何返回语句,导致编译器提示“并非所有代码路径都返回值”。
要实现需求,只需在if分支之外添加返回当前页面的语句即可,修改后的代码如下:
public class IndexModel : PageModel { public PersonModel Person { get; set; } public ActionResult OnPostSubmit(PersonModel person) { if (!string.IsNullOrEmpty(person.Name)) // 建议用string.IsNullOrEmpty做更严谨的空值判断,同时注意大小写统一(原代码里name和Name混用) { ViewData["Name"] = person.Name; return Redirect("~/path/"); } // 当name为空时,返回当前页面 return Page(); } }
额外说明:
- 原代码里存在
person.name和person.Name大小写不一致的问题,建议统一为person.Name(假设PersonModel里的属性是大写开头的Name) - 用
string.IsNullOrEmpty替代单纯的!=null,可以同时判断null和空字符串的情况,逻辑更严谨
内容的提问来源于stack exchange,提问作者Vasanth R
相关产品推荐
相关产品推荐

