#jquery #asp.net-mvc #ajax
#jquery #asp.net-mvc #ajax
Вопрос:
У меня есть это представление, основанное на модели person, которая является моделью сущности.
@model TestApp.Models.Person
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
@Html.Partial("../PersonContactData/Create");
Затем мой контроллер PersonContactData возвращает частичное представление «Создать», которое имеет форму и кнопку отправки. Когда я нажимаю эту кнопку отправки, я выполняю перенаправление на индекс из контроллера PersonContactData, и я хочу вернуть представление из индекса на страницу, описанную выше.
Как мне это сделать?
И я хочу, чтобы все это происходило без обновления страницы. Я могу передать все значения с помощью ajax, но мне нужен какой-то «контейнер» или что-то еще, чтобы фактически использовать частичные представления (список, создание, редактирование, .. из PersonContactData), которые возвращаются в основное представление, основанное на модели Person. Другими словами, действия, соответствующие им частичные представления и их функциональность могут работать на странице, основанной на другой модели (Person) и контроллере (PersonController)
Это, например, функция ajax post, которую я использовал для получения значений из представления create. Это работает, но все же я хочу перенаправить на индекс действия в моем HttpPost Create action и вернуть представление для индекса, как это должно работать. Но мое основное представление (основанное на модели Person) не будет отображать его.
function ACGetList() {
var personContactData = {
ContactType: $('#ddlContactDataType').val(),
Value: $('#txtContactDataValue').val()
};
$.ajax({
url: '/PersonContactData/Create',
type: 'POST',
data: JSON.stringify(personContactData),
dataType: 'Json',
contentType: 'application/json; charset=utf-8',
success: function () { },
error: function () { }
});
}
Ответ №1:
Насколько я знаю, нормально.
Система MVC — это структура на стороне сервера или фреймворк. M=модель, V= представление,C= контроллер.
Модели — это проверки, db и т.д., View — это разметки, json, css, xml и т.д… Контроллеры — php, asp, поэтому вы можете указать, что и когда показывать.
Насколько я понимаю ваш вопрос, вы просто просите использовать ajax.
Что делает ajax, так это запрашивает страницу и повторно отправляет некоторые данные или все их на главную страницу с помощью js. Проверьте jQuery .ajax
функцию или погуглите ее.
итак, допустим, ваша домашняя страница:
mysite.com
ВОЗВРАТ <h1>Hello World!</h1>
Затем страница ajax имеет
<p>I am ajax</p>
затем на домашней странице с помощью js / jq вы можете указать, куда вы хотите, чтобы «я — ajax» перешел
Комментарии:
1. В моем проекте я использую ajax для получения частичного представления ‘Create’ (на основе модели PersonContactData), которое вставляется в мое основное представление (на основе модели Person). Но все же, если я нажму на кнопку (onclick function ACGetList теперь отображается в главном разделе) из частичного представления, я хочу, чтобы моя функция RedirectToAction вернула другое частичное представление на главную страницу (на основе модели пользователя)
2. хорошо, при успешном использовании ajax вы можете добавить в него другой ajax или использовать функцию очереди, которая произойдет сразу после этого, если вы перенаправляете его на стороне сервера, вы просто заставляете браузер перейти в другое местоположение. Скачайте firebug в вашем Firefox, это поможет вам лучше понять это и правильно отладить ваш скрипт, тогда вы сможете видеть, что возвращает каждый ajax-запрос.