Как отправить значение field_1 и field_2 контроллеру MVC с помощью jQuery - PullRequest
0 голосов
/ 21 апреля 2011

Я задавал этот вопрос раньше, но мои ответы были не для MVC. Я попробую снова. Извините, если мой вопрос не очень хорош, поскольку английский не является моим родным языком.

Я хочу отправить значение некоторых полей:

field_1
field_2
Field_3 

На сервер с помощью Ajax.

Есть ли способ сделать это с помощью jQuery? Обратите внимание, что иногда это поля 1-3, а иногда, может быть, больше полей.

Ответы [ 3 ]

0 голосов
/ 21 апреля 2011

вы можете использовать что-то вроде этого:

[в вашем представлении]

<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...
}
0 голосов
/ 21 апреля 2011

Вот мои $ 0,02. Возможно, вы захотите проверить статью @ ScottGu на эту тему. Это может быть полезно. Это относится к MVC3. Вот ссылка http://weblogs.asp.net/scottgu/archive/2010/07/27/introducing-asp-net-mvc-3-preview-1.aspx

Надеюсь, это проливает свет

0 голосов
/ 21 апреля 2011

Конечно, это возможно.То, что вы хотите сделать, это передать массив строк в действие 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...