Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xcode/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc asp.net mvc4控制器允许空复杂对象_Asp.net Mvc_Asp.net Mvc 4_Model - Fatal编程技术网

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都可以调用它。(感谢您的反馈!)