2012-03-08 32 views
2

我正在網站上工作,我是新來的MVC3框架。我來自一個寫URL的地方非常簡單href="some/web/page.html",但現在使用MVC3 URL更復雜。MVC3 Url.Action() - 是否有一種簡單的方式在MVC3中編寫鏈接?

通過複雜我的意思是更多的參與寫。 href="@Url.Action("index", "Home")",這需要多次擊中換檔鍵,這對於來自href="some/web/page.html"的人而言僅僅是爲了換檔兩次而煩人且多餘。

我正在使用的網站正在使用一些區域,這些區域爲URL增加了更多複雜性。

href="@Url.Action("index", "area", new { area = "some_area})" 

我在一個100多頁的網站上工作。寫這些@Action.Url()變得無聊和刺激。我能做些什麼來削減冗餘?

+1

你看過T4MVC嗎?使用這些擴展方法時,會將這些方法分解爲「@ Url.Action(MVC.Areas.SomeArea.Area.Index())」,並且在區域,控制器或操作被重命名時也會使用智能感知和編譯時警告。 – 2012-03-08 16:49:26

+0

我還沒有看到。看起來很有趣我可能會在未來測試它 – ddilsaver 2012-03-08 18:02:27

回答

2

你可以做一些擴展方法像卡子解釋在這裏: http://weblogs.asp.net/rashid/archive/2009/04/01/asp-net-mvc-best-practices-part-1.aspx

事情是這樣的:

public static class UrlHelperExtension 
{ 
    public static string Home(this UrlHelper helper) 
    { 
     return helper.Content("~/"); 
    } 
} 

您還可以使用大衛博MVC T4模板生成的輔助方法: http://blogs.msdn.com/b/davidebb/archive/2009/06/01/a-buildprovider-to-simplify-your-asp-net-mvc-action-links.aspx

http://blogs.msdn.com/b/davidebb/archive/2009/06/26/the-mvc-t4-template-is-now-up-on-codeplex-and-it-does-change-your-code-a-bit.aspx

http://mvccontrib.codeplex.com/wikipage?title=T4MVC_doc&referringTitle=T4MVC

希望這會有幫助

+0

我喜歡你展示的第一種方法。我認爲它會工作得很好,因爲我只是學習MVC和C#,然後可能下線,一旦我習慣使用這些語言並且擁有良好的基礎,我將使用像MVC T4這樣的東西。 – ddilsaver 2012-03-08 17:32:53

+0

我做了第一種方法。但是有一個問題。我無法訪問部分視圖內的助手。這是我最能充分利用它們的例子:_PartialHeader,_PartialFooter,其中存儲了我的主導航。是否有額外的步驟使它們在部分視圖中可用? – ddilsaver 2012-03-08 18:27:44

+0

不理會最後的評論。我需要重建我的解決方案。它正在工作 – ddilsaver 2012-03-08 18:29:38

3

你可以嘗試使用T4MVC,除此之外你可以做的不多。

你可以閱讀它的文檔here

+0

爲您提供最佳投票,因爲該鏈接指向顯示T4MVC自顯示T4MVC以來的4次不同時間的URL。但是,嚴肅的說,微軟需要將它燒成MVC,而不是讓開發人員在Url.Action()助手中編寫字符串文字。對於MVC測試版來說這很好,但讓我們繼續前進並獲得這些強類型。 – 2015-10-07 19:55:21