У меня есть представление, которое динамически обновляется в зависимости от ввода пользователя - вот как это работает:
- Представление отображается с начальными данными из контроллера, заполненными частичным представлением
- Когда что-тощелкаю, я использую извлечение частичного представления из ActionResult из контроллера и заменяю существующие данные на jQuery
- Мне нужна строка из контроллера для основного представления, поэтому я делаю еще один вызов контроллера и извлекаюstring.
Я хочу знать, есть ли способ получить нужную мне строку с частичным представлением вместо отдельного вызова контроллера.
Исходные данные:
<!-- This needs to change when the partial is replaced, but it's heavier html
and I don't want to include it in the partial to minimize server calls/data -->
<div class="Location"> </div>
<div class="myContainingDiv">
<!-- This content gets updated -->
@Html.Partial("_MyPartial");
</div>
Частичное представление:
<div class="something">Model.something</div>
Метод контроллера (частичное представление):
[HttpGet]
public ActionResult _MyPartial(string param1)
{
MyModel model = new MyModel();
// This is dynamic and what I need to get in my main view from the partial view
model.something = "Hi";
return PartialView(model);
}
Метод контроллера (возвращает нужную строку):
public string GetHiString(string param1)
{
return "Hi";
}
JavaScript (обновить частичное представление):
$.post('/Home/_MyPartial', { 'param1': 'Hi' }, function (result) {
$('.something').replaceWith(result);
getOtherThing('Hi');
});
JavaScript(getOtherThing):
$.post('/Home/_GetHiString', { 'param1': 'Hi' }, function (result) {
$('.Location').replaceWith(result);
});
Хорошо, я думаю, что это еverything.
В основном Я хочу нажимать на контроллер только один раз за вызов .Включение div в частичное представление не является идеальным вариантом.
Второй раз я нажал на контроллере из основного представления, чтобы получить данные, которые можно легко создать из объекта в первом методе и отправить вчастичное представление.
Итак, помимо включения <div class="Location">
в мое частичное представление, есть способ отправить дополнительную информацию, которая мне нужна, в частичное представление и динамически получить ее из моего основного вида (через JavaScript).Или есть способ вернуть дополнительные данные, когда я звоню _MyPartial
из моего JavaScript?
Это действительно последнее упрощение, которое я хочу сделать, и я очень признателен за помощь!