2012-01-26 8 views
0

私は、デュアルリストボックスと4つのボタンを持つ部分的なビューを持っています。まさにこの http://www.meadmiracle.com/dlb/DLBPlugin.aspxAjaxアクション部分ビュー内のコントローラへの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はどのようにして決められますか?動的であり、最初のインデックスページに応答しているコントローラに基づいています。

例:都市または町のページにいる場合、都市と町をリストボックスに移動します.CatController ajaxアクションまたはTownController ajaxアクションであることをどのように知ることができますか? ajaxコールを投稿する場所を表示しますか?

答えて

2

は、あなたのPartialViewが呼び出されるURLを定義するいくつかのプロパティを持っているモデルを使用して持っているあなたのAJAXは、ビューを呼び出すことかを知っているように、その後、部分ビューを呼び出すビューは、このモデルを渡し

例えば

のViewModel

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

部分図PartialView

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

を呼び出す

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

見ます

関連する問題