2014-10-29 58 views
0

在我的控制器中有這樣的東西。在使用Javascript提交表單時傳遞對象

public ActionResult GetResult(Employee employee){ 
    return RedirectToAction("Index","Employee"); 
} 

我不能使用Ajax調用,因爲它會做一個帖子並等待響應,而不是提交。

當我有這樣的事情,它的作品。

[HttpPost] 
public ActionResult GetResult(string firstName,string lastName){ 
    return RedirectToAction("Index","Employee"); 
} 


In javascript 


    var form = $("#Employee); 
    form.attr('action','Employee/Index?firstName='Tim'&lastName='Tom'); 
    form.submit(); 

上面的作品當傳遞參數作爲querystring.But我不知道如何傳遞一個對象,而做post。我嘗試使用$ .post。但它沒有奏效。

謝謝。

+0

如果'Employee'包含屬性'firstName'和'lastName'然後再'公衆的ActionResult調用getResult(員工員工)'會的工作,但你爲什麼沒有該屬性的控件? – 2014-10-29 03:24:58

+0

如何傳遞QueryString中的對象?我相信'Employee/Index?employee = objectEmployee'是不可能的。 – Bala 2014-10-29 03:46:34

+0

當然沒有(Http對c#類一無所知)。但是'form.attr('action','Employee/Index?firstName ='Tim'&lastName ='Tom');'如果'Employee'包含這兩個屬性,則工作。你究竟想要做什麼? – 2014-10-29 03:49:50

回答

1

jQuery的POST在MVC的工作原理是這樣的:

由於您的控制器的操作方法是:

public ActionResult GetResult(Employee employee) 
{ 
    return RedirectToAction("Index","Employee"); 
} 

您可能希望在修改jQuery的POST調用此方法

var postData=function() 
    { 

     //prepare javascript object 
       var employee= 
       { 
        firstName:"firstname", 
        lastName:"lastname" 
       }; 
     $.post('/GetResult',employee,function(data){ 
     //process the data here using the the data present in data obj 
     }); 
    } 

型粘結劑在mvc中檢查與你有&模型的JavaScript對象中的相同參數,它也應該匹配動作的參數名稱方法到JavaScript對象名稱。

讓我知道這是否適合你。

感謝