造成空例外,我正在嘗試添加過濾功能,發送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