簡體   English   中英

在ASP.NET MVC4中自定義路由

[英]Customizing Routes in ASP.NET MVC4

執行時搜索控制器-索引

public ActionResult Index(string parm1, string parm2)

當前網址顯示/Search/Index?parm1=aa&parm2=bb

我想顯示/ Search / aa / bb

我將mapRoute更改為:

  routes.MapRoute(
            name: "SearchList",
            url: "Search/{action}/{parm1}/{parm2}",
            defaults: new
            {
                Controller = "Search",
                action = "Index",
                parm1= UrlParameter.Optional,
                parm2= UrlParameter.Optional
            });

我想念什么?

嘗試這個:

routes.MapRoute(
            name: "SearchList",
            url: "Search/{parm1}/{parm2}",
            defaults: new
            {
                Controller = "Search",
                action = "Index",
                parm1 = UrlParameter.Optional,
                parm2 = UrlParameter.Optional
            });

這只是使用搜索字詞更改網址的簡單方法。 這不是開箱即用的,並且對路由表沒有任何確切的綁定,如果您更改了路由,則必須在javascript中手動對其進行修復。 另外,生成網址時,您可能需要做一些空/空檢查。

 $("input.search_term").change(function (e){ //Get search terms and build new url var parm1 = $("input.search_term[name='parm1']").val(); var parm2 = $("input.search_term[name='parm2']").val(); var newUrl = "/search/"+ parm1 + "/" + parm2; //Change the link url, can do same thing on a form action url as well $("a.search_link").attr("href",newUrl); //For showing the text below, not necessary $("b.t_link").html(newUrl); }); 
 <input type="text" class="search_term" name="parm1" value="aa" /> <input type="text" class="search_term" name="parm2" value="bb" /> <a class="search_link" href="/search/aa/bb">Search</a> <!--not necessary--> <br /> <span>URL of the link will be: <b class="t_link"></b></span> <!--I assume you use jquery, let me know if you don't--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM