相关疑难解决方法(0)

从Razor View接收POST请求时,为什么我会得到null而不是空字符串?

当没有值时,我曾经收到空字符串:

[HttpPost]
public ActionResult Add(string text)
{
    // text is "" when there's no value provided by user
}
Run Code Online (Sandbox Code Playgroud)

但现在我正在传递一个模型

[HttpPost]
public ActionResult Add(SomeModel Model)
{
    // model.Text is null when there's no value provided by user
}
Run Code Online (Sandbox Code Playgroud)

所以我必须使用?? ""运算符.

为什么会这样?

string asp.net-mvc null viewmodel razor

70
推荐指数
2
解决办法
3万
查看次数

允许EmailAddressAttribute的空字符串

PersonDTO班上有财产:

[EmailAddress]
public string Email { get; set; }
Run Code Online (Sandbox Code Playgroud)

它工作正常,除非我想允许空字符串作为我的模型的值,如果我从客户端发送JSON:

{ Email: "" }
Run Code Online (Sandbox Code Playgroud)

我得到了400 bad request答复

{"$id":"1","Message":"The Email field is not a valid e-mail address."}
Run Code Online (Sandbox Code Playgroud)

但是,它允许省略email值:

{ FirstName: "First", LastName: 'Last' }
Run Code Online (Sandbox Code Playgroud)

我也尝试过:

[DataType(DataType.EmailAddress, ErrorMessage = "Email address is not valid")]
Run Code Online (Sandbox Code Playgroud)

但它不起作用.

据我所知,Data Annotations Extensionspack也不允许空字符串.

因此,我想知道是否有一种方法可以自定义标准EmailAddressAttribute以允许空字符串,因此我不必编写自定义验证属性.

validation asp.net-mvc attributes

15
推荐指数
2
解决办法
7949
查看次数

标签 统计

asp.net-mvc ×2

attributes ×1

null ×1

razor ×1

string ×1

validation ×1

viewmodel ×1