javascript
  • asp.net-mvc
  • 2014-02-19 128 views 0 likes 
    0

    我正在開發ASP.NET MVC項目。我現在面臨一個問題。當我點擊在我的下拉列表中添加列表選項時,我正從一個動作重定向到其他動作。有沒有辦法從ASP.NET MVC中的鏈接中刪除ID

    這是我使用重定向腳本:

    $("#DrpList").change(function (e) { 
        if ($(this).val() == 'Add List') { 
         document.location.href = 'http://localhost:1234/report/Index/indexid' 
    

    這裏IndexID爲是我傳遞只是隨機ID,它是靜態的,所以我可以在我的指數控制器和顯示視圖比較這我需要。

    在這裏,我要的是,之後我通過IndexID爲參數指標,當索引頁顯示,我可以在這樣我的鏈接看到IndexID爲,

    http://localhost:1234/report/Index/indexid 
    

    但我只需要顯示,

    http://localhost:1234/report/Index 
    

    我試圖做這樣的:

    return view("Index", "report", new{id = ""}); 
    

    但它不起作用。那麼我怎麼能做到這一點?

    更新:

    public ActionResult Index(string id) 
        { 
        if (id == "indexid") 
        { 
        //Here Add items to list 
    return View("Index", "report", new { id = "" }); 
        } 
    
    +0

    是'indexid'是int或字符串? –

    +0

    @Murali它是一個字符串 – Ajay

    +0

    檢查我的答案,它可能適合你 –

    回答

    0

    你的遙控器Index操作簽名應該使用indexid,而不是默認id。此外IndexID爲應nullable

    public class ReportController:Controller 
    { 
    
        public ActionResult Index(string indexid) 
        { 
    
        } 
    
    } 
    

    return view("Index", "report", new{indexid= ""}); 
    
    +0

    嗨,它不工作。我已經有索引中使用的字符串ID。我認爲,即使我改變它爲stringid,它沒有區別。我可以在id或stringid.but中看到值indexid,但在返回視圖中,我無法將該值設置爲null。我可以在鏈接 – Ajay

    +0

    @Ajay中看到,請在您的帖子中添加您的操作方法代碼,特別是簽名。這很難理解它 –

    +0

    嗨,我更新了我的文章。請看看這個。 – Ajay

    0

    您可以使用ActionFilter路由按您的要求。創建一個ActionFilter如下 -

    public class MyFilter : ActionFilterAttribute 
    { 
        public override void OnActionExecuting(ActionExecutingContext filterContext) 
        { 
         var rd = filterContext.RouteData; 
         if(rd.Values.Keys.Contains("id")) 
         { 
          filterContext.HttpContext.Items["key"] = rd.Values["id"]; 
          rd.Values.Remove("id"); 
          filterContext.Result = new RedirectResult("/Controller/Index"); 
         } 
        } 
    } 
    

    然後使用你在哪裏逝去的ID作爲值的動作此過濾器 -

    [MyFilter] 
        public ActionResult Index() 
        { 
         return View(); 
        } 
    

    您可以在操作使用HttpContext.Items["id"]訪問id值。

    當您要求與URL頁面 - /Controller/Action/indexid,它會被重定向到/Controller/Index

    相關問題