我正在使用MVC4开发应用程序, 在这里,我想在对话框中加载局部视图(包含填充的下拉列表),并希望将所选值发送给控制器。
我尝试了下面的代码,但它给了我错误“0x800a01b6 - Microsoft JScript运行时错误:对象不支持此属性或方法”。 我没有在输出中获得对话框。
包含下拉菜单的部分视图
@model InterviewAssistant.Models.CommonWrapper
@if (Model.tech != null && Model.tech.Count() > 0)
{
<div id="dialog-confirm" title="Select Technology">
<p><span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0;"></span>Select the technology</p>
@Html.HiddenFor(m => m.SelectedTrackId)
@Html.DropDownListFor(
m => m.SelectedTechId,
new SelectList(Model.tech, "TechId", "TechName"),
string.Empty
)
</div>
}
JQUERY:
$(document).ready(function () {
$("#fresh").click(function () {
InitializeDialog($("#my-dialog"));
$("#my-dialog").dialog("open");
});
//Method to Initialize the DialogBox
function InitializeDialog($element) {
//alert("Hi");
$element.dialog({
autoOpen: false,
modal: true,
open: function (event, ui) {
$(this).load("/Home/SelectTrack");
},
close: function () {
$(this).dialog('close');
}
});
}
});
控制器代码:
[HttpPost]
public ActionResult SelectTrack(int? selectedTrackId)
{
CommonWrapper wrapper = new CommonWrapper();
wrapper.tech = new List<TechModel>();
if (selectedTrackId.HasValue)
{
wrapper.tech = (from s in CommonWrapper.GetTechnology()
where s.TrackId == selectedTrackId
orderby s.TechName
select s).ToList();
}
return PartialView("TechnologyDialog",wrapper);
}
在$ element.dialog stmt上获取错误。 任何人都可以帮助我。
提前致谢