是否可以使用路由属性只接受路由参数的特定值?
Is it possible to only accept specific value of a route parameter using route attribute?
下面的代码完成了我想做的事情。如果字符串参数 ForSaleOrRent
具有除 ForSale
或 ForRent
之外的任何值,则操作方法 returns 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);
}
只需使用内联约束
[Route("post/{ForSaleOrRent:regex(^forrent$|^forsale$)}")]
public ActionResult PostProperty(string ForSaleOrRent)
{
return View(ForSaleOrRent);
}
参考文献:
下面的代码完成了我想做的事情。如果字符串参数 ForSaleOrRent
具有除 ForSale
或 ForRent
之外的任何值,则操作方法 returns 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);
}
只需使用内联约束
[Route("post/{ForSaleOrRent:regex(^forrent$|^forsale$)}")]
public ActionResult PostProperty(string ForSaleOrRent)
{
return View(ForSaleOrRent);
}
参考文献: