2012-01-26 54 views
0

我有一個部分視圖,它具有雙列表框和四個按鈕;正是這樣 http://www.meadmiracle.com/dlb/DLBPlugin.aspx部分視圖中控制器的Ajax動作URL

現在我想重新使用所有整個網站和每一個用戶點擊按鈕來搬東西進出名單的時候這個局部視圖,我想這在數據庫中通過持久化Ajax,我使用JQuery進行Ajax調用;這會造成困難,因爲Ajax調用的URL將根據響應該調用的控制器而有所不同!

$.ajax({ 
     type: "POST", 
     url: '@Url.Action("######HOW TO FIGRE OUT WHICH CONTROLLER #######")', 
     success: function (data) { 
    //Show some message to the user 
     } 
    }); 

現在我該如何確定URL?它將是動態的,它將基於響應初始索引頁面的控制器。

例如:如果我在城市或城鎮頁面中,用戶將城市和城鎮移動到列表框中,我怎麼知道它是CityController ajax動作或TownController ajax動作,我們如何知道這在部分查看在哪裏發佈ajax調用?

回答

2

讓你的PartialView使用具有一些特性,這定義URL被稱爲一個模型,然後在查看調用局部視圖通過這個模式,讓你的AJAX知道哪個查看調用

例如

視圖模型

public class DualListBoxViewModel { 
    public string Controller { get; set; } 
    public string Action { get; set; }  
} 

局部視圖

@model DualListBoxViewModel 
$.ajax({ 
     type: "POST", 
     url: '@Url.Action(model.Controller, model.Action)', 
     success: function (data) { 
    //Show some message to the user 
     } 
    }); 

觀調用PartialView

@{ Html.RenderPartial("DualListBoxWithAjax", new DualListBoxViewModel { Controller = "Town", Action = "UpdateListBox" }); }

相關問題