造成空例外,我正在尝试添加过滤功能,发送GET 要求在同一个页面中我的表中筛选记录。asp.net MVC ActionMethod在参数
我遇到的问题是当没有传递参数时,文本框投诉空对象引用。例如,当人首先查看该页面时,网址为'/ mycontroller/myaction /'。然后当他们申请一个过滤器并提交表单时,它应该是类似于'mycontroller/myaction?name = ...'
显然,问题源于名称值未被传递时(null)仍然试图绑定到'名称'文本框。关于我应该怎样处理这个问题的任何建议?
UPDATE 我已经尝试设置默认值属性,但我猜想这只是针对路由值,而不是查询字符串值的ActionResult MyAction([默认值(“”)字符串名)
//Action - /mycontroler/myaction
ActionResult MyAction(string name)
{
...do stuff
}
//View
<div id="filter">
<% Html.BeginForm("myaction", "mycontroller", FormMethod.Get); %>
Name: <%= Html.TextBox("name") %>
....
</div>
<table>...my list of filtered data
我不认为这会工作,你无法定义ActionResults与相同的名称,那么它不会知道要提供的路线。 – David 2010-03-09 11:39:48
@大卫利德尔 - 只要他们接受不同的参数,你完全可以做到这一点。你不能用相同的签名来定义两个,但是有两种方法很常见,一种接受模型,另一种不接受参数。 – Fenton 2010-03-10 08:52:26
要做到这一点的唯一方法是提供一个不同的ActionName作为属性。但是,那么你必须使用不同的链接 - http://stackoverflow.com/questions/436866/can-you-overload-controller-methods-in-asp-net-mvc – David 2010-03-31 12:54:18