2011-04-21 17 views
0

我之前問過這個問題,但我的答案不是MVC。我會再試一次。對不起,如果我的問題不好,因爲英語不是我的母語。如何發送field_1和field_2的值到使用jQuery的MVC控制器

我想給某些字段的值:

field_1 
field_2 
Field_3 

要使用Ajax的服務器。

有沒有一種方法可以使用jQuery來做到這一點?請注意,有時它的字段是1-3,有時候可能還有更多的字段。

回答

0

當然,這是可能的。這聽起來像你想要做的是傳遞一個字符串數組的MVC動作,或許是這樣的:

public class MyController 
{ 
    [HttpPost] 
    public ActionResult DoSomething(string[] strings) 
    { 
     return Json(new {success = true}); 
    } 
} 

可以使用JsonResult在一個ActionResult返回JSON編碼值,在這種情況下,一個匿名類型。

要在jQuery的做到這一點,代碼將是這個樣子:

function doSomething() { 
    var items = ['item1','item2','item3']; 
    $.ajax({ 
     type: 'POST', 
     url: 'http://mysite/MyController/DoSomething', 
     data: items, 
     dataType: 'application/json', 
     success: function() {/*handle success here */} 
    }); 
} 

在這裏,所有你需要做的就是填充items陣列需要的值,或許ÿ詢問DOM。

0

你可以使用這樣的事情:

[在查看]

<script> 
var actionUrlHere='@Url.Action("ActionName", "ControllerName")'; 
$.post(actionUrlHere, 
    { 
     fieldname_1: fieldValue_1, 
     fieldname_2: fieldValue_2, 
     fieldname_3: fieldValue_3, 
    }); 
</script> 

[在控制器]

[HttpPost] 
public void AjaxInputSave(string fieldname_1, string fieldname_2, fieldname_3) 
    { 
...your logic here... 
} 

,或者如果你要發送數組: [在查看]

<script> 
var actionUrlHere='@Url.Action("ActionName", "ControllerName")'; 
var fieldArrayValue = [111,222,333,444]; 
$.post(actionUrlHere, 
    { 
     fieldArrayName: fieldArrayValue 
    }); 
</script> 

[在控制器]

[HttpPost] 
public void AjaxInputSave(int [] fieldArrayName) 
    { 
...your logic here... 
} 
相關問題