Yazım hatalarım için üzgünüm C# ASP.NET MVC uygulamasında, herhangi bir gönderi ve alma olmadığında iki görünüm arasında veri iletmem gerekiyor. Bir görünüm kalıcı bir diyaloğu başlatır ve aralarında iletişime ihtiyacım var. JQuery kullanıyoruz.C# MVC Gönderilen öğeler arasında nesne geçişi yok
Veri ızgarasıyla Charges.cshtml adlı bir görünüm var. Datagrid'in ilk sütunu, şarjın tek veya çoklu tanımlamalara sahip olup olmadığını belirten bir özelliğine bağlı olarak span öğesine veya bir bağlantı elemanına sahip olabilir. Görünüm aşağıdakine benziyor.
şarj (bu durumda Açıklaması2) karşılık gelen açıklama bağlantısını tıklayın edecektir birden açıklamaları kullanıcıyı vardır ve kalıcı bir iletişim kutusu Şimdi de
altına
gibi çeşitli açıklamalarını gösteren açarsan Bu modal diyalog kullanıcısı bir tanımlamayı onaylayacak/seçecektir. Şimdi burada zor kısmı iki görünüm arasında veri iletmek için nasıl
altında gibi seçilen ücret açıklamasını kalıcı iletişim kutusunu kapatın ve güncellemeniz gerekir. Vericiyi denetleyici üzerinden veya javascript ile iletmek için elimden geleni yapıyorum.
Seçili yükü Charges.cshtml'den LoadLoanChargeDescriptions yöntemine json serialize, ViewData, ViewBag, TempData ve benzeri gibi LoanCharge denetleyicisine geçirmenin çeşitli yollarını denedim ama kullanmamayı denedim. Int, string, float gibi basit veri tiplerini aktarabilirim, fakat tüm nesne değil. CurrentDescription ve Açıklamalarımı denetleyicime aktarmam gerektiğini ve onların diğer parçalara geçmem gerektiğini hissediyorum. Dizgiler Listesini geçmeye çalıştım ancak denetleyicide 0 olarak saydığım için denetleyiciye nasıl erişileceğini göremedim. Ben
benim kodu için lütfen aşağıya bakın
Charges.cshtml
pasajlarını@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 olarak (tıpkı Merhaba metin eklendi şimdilik) çoklu açıklamaları UI açılır pencere açamaz duyuyorum
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)
}
}
GÜNCELLEME 1
Sorumu güncelledim ve daha fazla ayrıntı yayınladım.
Şimdiden teşekkürler.
GÜNCELLEME 2
linki aşağıda benim çözüm için bakınız. veri aktarmak için
MVC pass model between Parent and Child Window
@Siva ... Eğer .. – Ziggler
lütfen bana @ Siva..Sizin için çok teşekkür ederim. Son zamanlarda mimarlık ekibimiz çerçevemize değişiklikler yaptı ve $ .ajax istisnası atar, bu yüzden Review.js'mde ShowMatchingDescriptions() işlevini kullanmam gerekir. Bana – Ziggler
@ Ziggler gibi nasıl yapabilirim? Üzgünüz. Review.js –