2008-12-18 21 views
0

在我的asp.net mvc頁面中,我想調用一個RedirectToAction(actionName,controllerName,values)。用可變數量的成員構建對象?

values參數是一個包含所有nessecary值的對象。 實施例

return RedirectToAction(redirectAction, redirectController, 
      new{ personId = foundId, 
       personEmail = foundEmail, 
       personHeigh = foundHeight}); 

這當然,如果沒有這些參數的爲空或空字符串。 發生這種情況時,System.Uri.EscapeDataString(String stringEvent)將引發ArgumentNullException。
問題是我不知道在編譯時哪些參數將爲空。另外,我寧願不爲每個可能的notnull值組合都創建一個對象。
在我的例子中只有三個參數,但是如果有10個參數呢?可能的組合呈指數增長。 由於無法將字段添加到匿名類型,因此我無法逐個添加參數。

我該如何解決這個問題?

回答

2

您可以強制非空值...

return RedirectToAction(redirectAction, redirectController, 
     new{ personId = foundId, 
      personEmail =foundEmail ?? string.Empty, 
      personHeigh = foundHeight ?? string.Empty}); 
+0

是的,那是我最初做。這並不能解決問題,因爲System.Uri.EscapeDataString(String stringToEscape)仍然會拋出。我無法填充虛擬值,因爲該實際上是用於某些事情。 – 2008-12-18 22:30:02