在Javascript中复制Html.ActionLink的结果

时间:2017-01-31 18:10:13

标签: jquery asp.net-mvc modal-dialog partial-views

我有以下代码在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点击中发生的事情。

感谢。

0 个答案:

没有答案