Прошу прощения за мои typos.Я работаю над доказательством концепции C# ASP.NET MVC-приложения, где мне нужно передавать данные между двумя представлениями, когда нет сообщения и получить. Один вид запускает модальный диалог, и мне нужна связь между ними. Мы используем JQuery.C# MVC Нет сдавать объект пропуска между представлениями
У меня есть вид под названием Charges.cshtml с сеткой данных. Первый столбец datagrid может иметь элемент span или элемент ссылки в зависимости от свойства , который будет определять, имеет ли плата одно или несколько описаний. Вид выглядит следующим образом.
Если заряд имеет несколько описаний пользователь нажмет соответствующую описание ссылки (DESCRIPTION2 в данном случае) и модальное диалоговое окно откроется, показывая различные описания, как под
В настоящее время в этот пользователь модального диалога подтвердит/выберет одно описание. Теперь мне нужно, чтобы закрыть диалоговое окно модальное и обновить описание выбранного заряда, как показано ниже
Твердая часть здесь как передавать данные между двумя точками зрения. Я согласен передавать данные через контроллер или через javascript.
Я пробовал различные способы передачи выбранного заряда от Charges.cshtml к методу LoadLoanChargeDescriptions в контроллере LoanCharge, таком как json serialize, ViewData, ViewBag, TempData и т. Д., Но бесполезно. Я могу передавать простые типы данных, такие как int, string, float, но не весь объект. Я чувствую, что мне нужно передать CurrentDescription и Descriptions моему контроллеру, и от них мне нужно перейти на другие части. Я попытался передать List of strings, но не смог увидеть, как получить доступ к ним в контроллере, так как в моем контроллере я получил счет 0. Я могу открыть всплывающее меню несколько описаний UI (сейчас просто добавил Привет текст)
Пожалуйста, смотрите ниже мой фрагменты кода
Charges.cshtml
@model ChargeViewModel
@using (Html.FAFBeginForm())
{
<div>
<table>
<tbody>
<tr >
//.....
<td>
@if(Model.IsMultipleMatch)
{
var loanCharge = Model as ChargeViewModel;
if (loanCharge.IsMultipleMatch == true)
{
//string vm = @Newtonsoft.Json.JsonConvert.SerializeObject(loanCharge);
<span>
<a
onclick="ShowMatchingDescriptions('@Url.Action("LoadLoanChargeDescriptions", "LoanCharge")','', '920','500')">
@loanCharge.Description
</a>
</span>
}
}
else
{
<span>Model.Description</span>
}
</td>
</tr>
</tbody>
</table>
</div>
}
public class ChargeViewModel
{
public string Description {get;set;}
public bool IsMultipleMatch {get;set;}
public List<string> Descriptions {get;set;}
}
public class LoanChargeController
{
public ActionResult LoadLoanChargeDescriptions()
{
// get data here and pass/work on
return View("_PartialMultipleMatchPopup", null);
}
}
В Review.js
function ShowMatchingDescriptions(popUpURL, windowProperties, w, h) {
try {
var left = (screen.width/2) - (w/2);
var top = (screen.height/2) - (h/2);
var properties = windowProperties + "dialogwidth:" + w + "px;dialogheight:" + h + "px;dialogtop:" + top + "px;dialogleft:" + left + "px;scroll:yes;resizable:no;center:yes;title:Matching Lender’s Fee;";
$.when(
window.showModalDialog(popUpURL, window, properties)
)
.then(function (result) {
var childWindow = result;
});
}
catch (err) {
alert("Error : " + err)
}
}
ОБНОВЛЕНИЕ 1
Я обновил свой вопрос и разместил более подробную информацию.
Заранее спасибо.
UPDATE 2
Пожалуйста, см мое решение по ссылке ниже.
MVC pass model between Parent and Child Window
@Siva ... Можете ли вы сказать мне, как .. – Ziggler
@ Шива ... Большое спасибо за вашу помощь. На самом деле недавно наша команда разработчиков внесла изменения в нашу инфраструктуру и исключение $ .ajax throws, поэтому мне нужно использовать ShowMatchingDescriptions() в моей Review.js. Не могли бы вы дать мне знать, как я могу это сделать – Ziggler
@ Ziggler. Извините. Я не знаком с Review.js –