我正在尝试将URL查询的单个参数绑定到action方法中的单个属性。
URL与以下内容相似:
/user/validate?Some.Prefix.Username=MyUserName
我的控制器和操作方法遵循以下原则:
public class UserController : Controller
{
public IActionResult Validate([Bind(Prefix = "Some.Prefix")]string username)
{
return Ok(username);
}
}
但是,当调用此操作方法时,username
参数始终为null。似乎这是将BindAttribute
与字符串参数而不是简单的类参数一起使用的结果。如果将string username
参数替换为包含Username
属性的简单类,则可以按预期捕获值。
public class UserController : Controller
{
public IActionResult Validate([Bind(Prefix = "Some.Prefix")]ValidationModel model)
{
return Ok(model);
}
}
public class ValidationModel
{
public string Username { get; set; }
}
URL参数名称包含前缀时,是否有任何方法可以绑定到单个参数(而不是类参数?)>
我正在尝试将URL查询的单个参数绑定到action方法中的单个属性。该URL遵循以下几行:/user/validate?Some.Prefix.Username=MyUserName和我的控制器以及...
对于诸如int和string的简单类型,Bind Prefix会覆盖参数的模型名称。以您的操作方法为例,DefaultModelBinder将查找名称“ Some.Prefix”而不是“ username”。