2010-08-19 83 views
1

我正在使用以下代碼進行ajax調用。在asp.net中使用jQuery進行AJAX調用mvc

$.ajax( 
    { 
     url: '/BuildingCompany/EditAjax/' + id, 
     cache: false, 
     type: 'POST', 
     data: ({ imageValue: $(this).attr("src") }), 
     contentType: 'application/json; charset=utf-8', 
     dataType: 'json' 
} 

在EditAjax操作中,應該如何檢索通過此ajax調用發送的數據。

回答

0
[HttpPost] 
public JsonResult EditAjax(string companyName, string imageValue) { 
    // do stuff here 


    return Json(object); 
} 
2

一旦提交了ajax表單,ASP.NET MVC模型綁定器就會將POST參數「imageValue」與action方法參數相匹配。

假設你的路由設置正確,下面應該工作:

public class HomeController { 
    [HttpPost] 
    public ActionResult EditAjax(string companyName, string imageValue) { 
     //companyName == "BuildingCompany" 
     //imageValue == "The Image source" 
    } 
} 

路由設置應該是這個樣子:

routes.Add(new Route("{companyName}/{action}", 
    new RouteValueDictionary { { "controller", "Home" } }, 
    new UIRouting())); 
0

伊戈爾的解決辦法,如果你正在使用AJAX工作通常發送表單,但您發送JSON,因此需要額外的步驟。

在MVC期貨庫(可在CodePlex上找到)是一個JSONValueProvider。下載該庫並參考Microsoft.Web.Mvc。

在你的Global.asax.cs的Application_Start()方法中添加一行:

ValueProviderFactories.Factories.Add(new Microsoft.Web.Mvc.JsonValueProviderFactory());

這將讓你的動作方法的模型結合對JSON,你通常會。您可能已經知道這一點,但因爲你是使用JSON你可以返回

Json(object)

這將您的序列化對象JSON,發送正確的內容,類型等你。