以下代码执行我想要做的事情。如果字符串参数ForSaleOrRent
具有任何值,但ForSale
或ForRent
,则操作方法返回HttpNotFoundResult
。我的问题是只使用Route属性吗?
[Route("post/{ForSaleOrRent}")]
public ActionResult PostProperty(string ForSaleOrRent)
{
bool IsValidUrl = ForSaleOrRent.ToUpper() == "FORSALE" ||
ForSaleOrRent.ToUpper() == "FORRENT";
if (!IsValidUrl)
{
return new HttpNotFoundResult();
}
return View(ForSaleOrRent);
}
答案 0 :(得分:3)
只需使用内联约束
[Route("post/{ForSaleOrRent:regex(^forrent$|^forsale$)}")]
public ActionResult PostProperty(string ForSaleOrRent)
{
return View(ForSaleOrRent);
}
参考文献: