我有一個大腦崩潰,因爲我在我的MVC3項目我自己的jQuery的混合式組合Telerik的擴展。問題與中的RenderPartial Telerik的模態窗口使用Ajax
我希望能夠用Ajax調用的ActionResult是這樣的:
function showDialog(arg) {
var url = '/Home/ReserveRent/';
alert(arg);
$.ajax({
type: "GET",
url: url,
data: { id: arg },
dataType: "html",
success: function(data) { $('#RenderRent').html(data); },
error: function(data) { alert(url+' '+arg+' '+data); }
});
var rentPayment = $('#RenderRent').html();
$('#ModalPay' + arg).html(rentPayment);
$('#Window' + arg).data('tWindow').center().open();
}
在頁面加載我創建多個Telerik的的Windows,這是隱藏的,我想用我的jQuery以上後,他們中的每一個來電。我的剃鬚刀頁面有這兩個的div標籤包括:
<div>
@foreach (ShowAvailability availability in Model.ShowAvailabilities)
{
foreach (var salesLine in availability.SalesLinesForSale)
{
SalesLine line = salesLine;
Html.Telerik().Window()
.Name("Window"+line.SalesLineID)
.Title("Submit feedback")
.Content(@<text>
@using (Html.BeginForm("PayRent", "Payment", FormMethod.Post, new { id = "feedback-form" }))
{
<p class="note">This is <strong>salesLine</strong> @line.SalesLineID.</p>
<div id='"ModalPay"[email protected]'>
<!--TODO: Here will rendered Html be copied between Divs-->
</div>
<div class="form-actions">
<button type="submit" class="t-button t-state-default">Submit feedback!</button>
</div>
}
</text>)
.Buttons(b => b.Close())
.Width(400)
.Draggable(true)
.Modal(true)
.Visible(false)
.Render();
}
}
</div>
<div id="RenderRent" style="display: none;">
<!-- TODO: Render payment info-->
@{Html.RenderPartial("ReserveRent");}
</div>
正如你可以在我的Ajax請求中看到我將呈現標記爲#RenderRent div標籤內的結果。因此,我想用Telerik窗口中的特殊Div標籤替換該Div標籤,並且窗口現在應該有正確的模型信息。我的控制器操作是這樣的:
public ActionResult ReserveRent(int salesLineId)
{
var salesLine = _salesLineLogic.GetSalesLine(salesLineId);
if (!salesLine.IsAvailable)
{
ViewBag.AvailableSalesLine = @"Þessi orlosfeign er því miður ekki lengur til leigu á þessu tímabili.";
return RedirectToAction("Index", "Home");
}
salesLine.IsAvailable = false;
_salesLineLogic.SaveToDatabase();
var payment = new Payment { FK_SalesLineID = salesLineId, EditedBy = "PayRent.cshtml (GET)", EditedOn = DateTime.Now };
return PartialView(new HomeFormViewModel(payment));
}
出於某種原因沒有被從Ajax請求收到的參數,salesLineId始終是NULL。任何人都可以發現我在做什麼錯誤的AjaxRequest,或者如果jQuery函數沒有宣佈正確?
喜試。我用Ajax請求看到了我的方式錯誤,我傳遞給控制器操作的參數名稱有錯誤的名稱,它當然應該是「saleslineId」。 – gardarvalur 2012-03-08 09:59:55
啊,對不起。我沒有注意到你的評論。現在問題解決了嗎? – Tx3 2012-03-08 10:11:05
謝謝Tx3,是的,問題部分解決了。現在我將正確的數據輸入到我的「#RenderRent」Div標籤中,但是我還有另一個Telerik組件問題。 我想將Div標籤複製到Telerik對話框窗口中,但它總是彈出空的。換句話說,我想讓#RenderRent Div標籤取代Telerik組件中的''ModalPay'+ @ line.SalesLineID'標籤。也許你可以幫助我,可以這樣宣佈div ID嗎? – gardarvalur 2012-03-08 10:19:48