![](/img/trans.png)
[英]Will a custom RoleProvider work with [Authorize] on action method in ASP.NET MVC?
[英]asp.net mvc 4 custom urls for action method
我正在創建一個ASP.NET MVC 4應用程序
public class AspNetController : Controller
{
//
// GET: /AspNet/
public ActionResult Index()
{
return View();
}
public ActionResult Introduction()
{
return View();
}
}
如上圖所示,有AspNet控制器和介紹動作方法
導入操作方法的默認網址為
本地主機:55134 / ASPNET /導入
但我想像
本地主機:55134 / ASPNET /引入到ASPNET
與/ localhost:55134 / aspnet / NetFrameWork相同
/localhost:55134/aspnet/What-is-.Net-Framework
怎么做
您應該能夠使用ActionName屬性來裝飾您的路線。
[ActionName("Introduction-To-AspNet")]
public ActionResult Introduction()
{
return View();
}
您確實想使用AttributeRouting,或者通過第3方程序包使用,也可以通過本機使用。
從技術上講,此概念屬於ASP.NET MVC中的“ 路由” 。
為此,您需要在RegisterRoutes(RouteCollection routes)
下的App_Start->RouteConfig.cs
文件中為路由輸入一個條目
例如:
routes.MapRoute(
"customRouteName",
"aspnet/introduction-To-AspNet",
new { controller = "AspNet", action = "Introduction" });
在這里, aspnet / introduction-To-AspNet將附加在您的基本URL之后,即localhost:55134 /
快速而骯臟的答案是將路由添加到您的〜/ AppStart / RouteConfig.cs文件,它將得到照顧:
routes.MapRoute(
name: "CustomRoute",
url: "Aspnet/Introduction-To-AspNet",
defaults: new { controller = "Home", action = "AspNet", id = UrlParameter.Optional }
);
但是,我假設這是針對某種類型的博客的? 我建議您有一個稱為view的操作方法,然后將您的名稱用作文章的參數。 這樣,您不必在每次添加新文章或其他內容時都去編輯代碼:
public class ArticlesController : Controller
{
public ActionResult ViewArticle(string? title)
{
ViewBag.Article = title;
return View();
}
}
這樣,您的URL將是www.yoursite.com/Articles/ViewArticle/Introduction-To-AspNet。 通常,如果可以避免的話,您就不想在路由配置中添加大量的特定路由。 話雖如此,如果這是一個遺留系統,則路由表可能是唯一的方法。
編輯
好的,所以您可以做的是將字符串傳遞到ViewBag
並使用case語句確定要顯示的局部視圖(我認為這可能是您的理想解決方案):
<!--cshtml view-->
@switch(ViewBag.Article)
{
case 'Introduction-To-AspNet':
@Html.Partial('pathToPartialView.cshtml')
break;
case 'Some-Other-Article'
@Html.Partial('pathToAnotherPartialView.cshtml')
break;
...
...
default:
@Html.Partial('invalidArticleName.cshtml')
break;
}
控制器將通過ViewBag
傳遞商品名稱,然后您可以使用case語句找出要渲染的商品...,當然,您一直在尋找真正的秘密: @Html.Partial('URL')
-如果您將其放在頁面中,這將使您的部分內容正確呈現。 您也可以像FYI一樣傳遞對象。
另外,請確保對switch語句具有默認操作,該操作將顯示某種404頁面,該頁面指示URL中的名稱無效。 您總是想在從URL接收用戶輸入的任何時候都擁有此功能,因為人們總是無休止地使用URL(更無辜的是,始終復制/粘貼錯誤/不完全錯誤)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.