【发布时间】:2019-10-04 04:00:56
【问题描述】:
这是 MVC 模型类的一部分:
[Required]
[StringLength(2, ErrorMessage = "Two characters.")]
public string StateProvince { get; set; }
如果我使用空白的 StateProvince 提交表单,我会收到一条错误消息。如果我在 StateProvince 中使用一个字符提交它,没问题。以下是我返回错误消息的方式:
if (!ModelState.IsValid)
{
MyMessage ErrMsg = new MyMessage();
ErrMsg.StatusCode = 101;
ErrMsg.StatusMsg = string.Join("; ", ModelState.Values.SelectMany(x => x.Errors).Select(x => x.ErrorMessage));
return "[" + JsonConvert.SerializeObject(ErrMsg) + "]";
}
MyMessage 的结构如下:
public class MyMessage
{
public int StatusCode { get; set; }
public string StatusMsg { get; set; }
}
我是否可以得出这样的结论:StringLength 装饰仅用于在 html 输入字段中创建客户端验证?
由于我自己编写 HTML 而不是使用 Asp.Net 来生成它,那么我是否应该省略模型字段上的 StringLength 装饰,而是在控制器中为此编写服务器端验证代码? (这违反了 MVC,对吧?)
【问题讨论】:
标签: model-view-controller modelstate