我有以下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