我有以下代码在MVC视图中显示模式对话框:
@Html.ActionLink("View Insurance", "ViewInsurance", "Home", null, new { @class = "modal-link" })
当我点击链接时,它会从我的控制器中正确显示PartialView。控制器代码在这里:
public ActionResult ViewInsurance()
{
InsuranceViewModel vm = new InsuranceViewModel();
vm.Name = "Medicare";
return PartialView("_Insurance", vm);
}
但是,我需要通过Javascript启动相同的对话框。我需要动态更改输入值(作为Controller参数)以在对话框中显示不同的数据。我在这个例子中省略了它,因为它只会使问题复杂化。
我创建了一个按钮来调用Javascript,我想和ActionLink做同样的事情。这是代码:
<input type="button" name="style-a1" id="style-a1" value="View Insurance from Javascript" onclick="ViewInsuranceThroughJavascript()">
以下是页面上相关的Javascript:
<script>
function ViewInsuranceThroughJavascript() {
$.ajax({
url: '@Url.Action("ViewInsurance", "Home")',
success: function (data) {
alert("Success");
},
error: function (xhr, ajaxOptions, thrownError) {
alert(xhr.responseText);
}
});
}
</script>
结果是在使用ActionLink时,模态对话框显示正常。当使用javascript到所有控制器时,控制器操作被命中但对话框不会显示。我已经入侵它以向ActionLink添加ID,然后让我的Javascript调用该对象的onClick方法,该方法将模拟ActionLink的单击(工作)。但是,我确实需要最终更改输入参数,以便该方法不起作用。
有没有人有任何建议?我看过一篇关于jQuery无法显示PartialViews的帖子。我必须要做一些事情来模拟ActionLink点击中发生的事情。
感谢。