Asp.net mvc asp.net mvc4控制器允许空复杂对象
如果我有这个:Asp.net mvc asp.net mvc4控制器允许空复杂对象,asp.net-mvc,asp.net-mvc-4,model,Asp.net Mvc,Asp.net Mvc 4,Model,如果我有这个: public ActionResult BuscarClientes(SomeClass c) { ... code ...} 我访问这个动作的url时没有任何参数(所以我不会给我的模型提供任何元素),我仍然会得到一个新创建的对象。但是,如果没有参数,我想得到一个空对象 这是因为我将此方法用作搜索操作方法,第一次完成获取时,我不想执行任何验证,只想返回视图。在那之后,post将成为一个GET方法(我需要一个搜索使其成为GET请求),其中包含查询字符串中的所有值 如果查询字符串
public ActionResult BuscarClientes(SomeClass c)
{ ... code ...}
我访问这个动作的url时没有任何参数(所以我不会给我的模型提供任何元素),我仍然会得到一个新创建的对象。但是,如果没有参数,我想得到一个空对象
这是因为我将此方法用作搜索操作方法,第一次完成获取时,我不想执行任何验证,只想返回视图。在那之后,post将成为一个GET方法(我需要一个搜索使其成为GET请求),其中包含查询字符串中的所有值
如果查询字符串中没有给出参数,如何强制模型绑定器为我提供空对象?因为现在,我得到了一个SomeClass的新实例,它的所有属性都设置为null。不要只是空对象。尝试为参数指定默认值
public ActionResult BuscarClientes(SomeClass c = null)
{ ... code ...}
我已经试过了,但是没有空值,总是一个构造的对象,即使我的get请求在查询字符串上没有值,你找到解决方案了吗?我也有同样的问题。不,很遗憾。最后我用重定向和两种动作方法做了一些事情,这太糟糕了。最后,我使用带有不同参数的[HttpGet]和[HttpPost]以及一个具有可选参数的私有函数,这样每个ActionResult都可以调用它。(感谢您的反馈!)