首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在asp.net mvc中是否可以通过查询字符串进行模型绑定?

在asp.net mvc中是否可以通过查询字符串进行模型绑定?
EN

Stack Overflow用户
提问于 2013-06-27 03:58:56
回答 1查看 15.1K关注 0票数 19

模型绑定也可以通过查询字符串工作吗?

如果我有一个get请求,比如:

代码语言:javascript
复制
GET /Country/CheckName?Country.Name=abc&Country.Id=0 HTTP/1.1

CountryController中的以下方法是否具有包含Id和Name属性的oCountry参数,这些属性具有来自查询字符串的值?

代码语言:javascript
复制
public ViewResult CheckCountryName(Country oCountry)
{
     //some code
     return View(oCountry);
}

由于某些原因,我在oCountry对象中得到Id为0,名称为null。遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-27 04:03:46

是的,模型绑定支持来自查询字符串的绑定。然而,同样的模型绑定规则也适用于这里:属性名称/表达式应该在请求和模型中匹配。

因此,如果你有一个Name属性,那么你需要在查询字符串中有一个Name键。如果编写Country.Name,模型绑定首先查找名为Country的属性,然后在该国家/地区对象上查找Name属性。

因此,您的属性名称不需要Country前缀,因此您的请求应该如下所示:

代码语言:javascript
复制
/Country/CheckName?Name=abc&Id=1 HTTP/1.1

或者,如果不能更改请求,可以使用BindAttribute为操作参数指定前缀

代码语言:javascript
复制
public ViewResult CheckCountryName([Bind(Prefix="Country")]Country oCountry)
{
     //some code
     return View(oCountry);
}
票数 26
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17329342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档