我有以下MVC操作:MVC可選參數默認值
[ActionName("order-brochure")]
public ActionResult OrderBrochure(int brochureId, bool isModal = true)
{
return View(HomeModelBuilder.BuildOrderBrochureModel(brochureId, isModal, false));
}
凡isModal
是一個可選的參數
是否有任何其他的方式來設置這個其他的默認比方法中使用bool isModal = true
因爲我的公司使用代碼分析,並失敗給出一個CA1026:不應該使用默認參數
但是,我不能覆蓋該方法,因爲你不能h AVE具有相同名稱的兩個動作,你會大致如下得到一個錯誤:
The current request for action 'order-brochure' on controller type 'HomeController' is ambiguous between the following action methods:
System.Web.Mvc.ActionResult OrderBrochureModal(Int32, Boolean) on type MarshallsCoUkCommercial.Website.Controllers.HomeController
System.Web.Mvc.ActionResult OrderBrochure(Int32) on type MarshallsCoUkCommercial.Website.Controllers.HomeController
如果我用
public ActionResult OrderBrochure(int brochureId, bool isModal)
設置isModal
到UrlParameter.Optional
我無法測試以查看isModal
是否爲空,因爲它將始終設置爲false
'public ActionResult OrderBrochure(int brochureId,bool?isModal)''?現在你可以測試它,看它是否爲空。 –
奇怪的是我之前試過它是一個可空的布爾,它剛剛崩潰,只是試了一遍,它現在的作品 – Pete