首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >绑定的对象不能为空

绑定的对象不能为空
EN

Stack Overflow用户
提问于 2011-11-25 13:34:41
回答 1查看 137关注 0票数 4

例如,有一些对象将被建模用于强类型视图:

代码语言:javascript
复制
class SomeModel {
    public string SomeUsualField { get; set; }
}

此外,控制器中存在一些操作,这些操作将与上面指定的对象一起工作:

代码语言:javascript
复制
public ActionResult Index(SomeModel obj)
{ 
    return View(obj);
}

所以问题是,为什么obj不是null,而Index操作首先被调用?它使用空SomeUsualField创建了SomeModel类的新实例。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-25 14:04:01

ASP.NET MVC模型绑定基础结构尝试使用来自请求对象的数据(查询字符串、表单字段等)填充所有属性。因此,它创建控制器的所有参数的一个实例,以尝试匹配属性。因为您没有传递SomeUsualField,所以它是null,但是参数对象有一个空实例。

您可以在调用http://localhost/MySite/MyController/Index?SomeUsualField=test时初始化属性SomeUsualField。属性测试将使用‘SomeUsualField’自动初始化

如果不希望设置该参数,可以将其放在一边,并使用属性HttpPost执行第二个操作。music store是一个很好的教程。

代码语言:javascript
复制
public ActionResult Index() 
{  
    var obj = new SomeModel();
    return View(obj); 
} 

[HttpPost]
public ActionResult Index(SomeModel obj) 
{  
    // update logic
    return View(obj); 
} 
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8265154

复制
相关文章

相似问题

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