Подтвердить что ты не робот

В ASP.NET MVC: все возможные способы вызова метода действия контроллера из представления Razor

Я знаю, что это довольно простой вопрос.

Но не могли бы вы сказать мне все возможные варианты, доступные,
вызовите метод управления действием [обычно любую процедуру на стороне сервера] из представления Razor View и,
в каких сценариях каждый из них наиболее применим, который будет использоваться.

Спасибо.

4b9b3361

Ответ 1

Метод 1: Использование jQuery Ajax Получить вызов (частичное обновление страницы).

Подходит для получения данных jSon из базы данных.

Метод действия контроллера

[HttpGet]
public ActionResult Foo(string id)
{
    var person = Something.GetPersonByID(id);
    return Json(person, JsonRequestBehavior.AllowGet);
}

JQuery GET

function getPerson(id) {
    $.ajax({
        url: '@Url.Action("Foo", "SomeController")',
        type: 'GET',
        dataType: 'json',
        // we set cache: false because GET requests are often cached by browsers
        // IE is particularly aggressive in that respect
        cache: false,
        data: { id: id },
        success: function(person) {
            $('#FirstName').val(person.FirstName);
            $('#LastName').val(person.LastName);
        }
    });
}

Класс Person

public class Person
{
    public string FirstName { get; set; }
    public string LastName { get; set; }
}

Способ 2: Использование jQuery Ajax Post call (частичное обновление страницы).

Подходит для тех случаев, когда вам нужно делать частичные данные о почтовых сообщениях в базе данных.

Метод post также такой же, как выше, просто замените [HttpPost] на метод Action и введите как post для метода jquery.

Для получения дополнительной информации проверьте публикацию данных JSON для контроллеров MVC здесь

Способ 3: Как сценарий формы (полноэкранное обновление).

Подходит для того, когда вам нужно сохранить или обновить данные в базе данных.

Просмотр

@using (Html.BeginForm("SaveData","ControllerName", FormMethod.Post))
{        
    @Html.TextBoxFor(model => m.Text)

    <input type="submit" value="Save" />
}

Метод действий

[HttpPost]
public ActionResult SaveData(FormCollection form)
    {
        // Get movie to update
        return View();
   }

Способ 4: Как сценарий получения формы (полное обновление страницы).

Подходит, когда вам нужно получить данные из базы данных

Метод Get также аналогичен выше, просто замените [HttpGet] на Action Method и FormMethod.Get на метод формы формы.

Надеюсь, это поможет вам.