CORE 2 MVC Ajax重定向显示视图

时间:2018-04-16 20:59:29

标签: asp.net-core-mvc asp.net-ajax

我有一个使用jQuery Datatable的应用程序,我想点击一行,选择id,然后调出一个允许编辑该视图并更新底层数据库的视图。 Ajax让我进入编辑视图的控制器动作,但我无法显示视图本身。相反,控制器操作只返回ajax。我尝试了很多没有快乐的战术。这是一个基于标准CORE模板的简单示例:

@section scripts{
    <script>
        $(document).on('click', 'button.number', function () {
            alert($(this).val());
            $.ajax({
                method: 'GET',
                url: '@Url.Action("About", "Home")'
            });
        });
    </script>
}

<h3>Home Page</h3>
<div>
    <button href="#" type="button" class="number" id="one" value="1">1</button>
    <button href="#" type="button" class="number" id="two" value="2">2</button>
</div>

运行调试器会显示“关于”操作被称为“确定”,但视图未被呈现 - 它只返回到ajax。我尝试了各种重定向,但任何&#34;返回&#34;回到ajax。

是否存在这种或者更好的方式从JS到控制器动作?感谢

编辑: Batuhan得到了他的解决方案,但我重新发布它以清理一点语法并添加参数传递,这是我最初的目标。

&#13;
&#13;
$(document).on('click', 'button.number', function () {
            var id = $(this).val();
            alert(id);
            $.ajax
                ({
                    method: 'GET',
                    url: '@Url.Action("About", "Home")',
                }).success(function (result) {
                    window.location.href = '/home/about/' + id;
                });
        });
&#13;
&#13;
&#13;

这是关于行动的家庭控制器:

&#13;
&#13;
public IActionResult About(int id)
        {
            string parm2 = id.ToString();
            ViewBag.msg = parm2;
            return View();
        }
&#13;
&#13;
&#13;

关于页面:

&#13;
&#13;
@{
    ViewData["Title"] = "About";
}
<p>
    <h1> @ViewBag.msg </h1>
</p>
&#13;
&#13;
&#13;

所有工作都是最初希望的!

1 个答案:

答案 0 :(得分:0)

const FolderVisibility = new Enum<typeof data>(data) as Enum<typeof data> & typeof data

这是一个解决方案,因为您无法从ajax调用重定向。它以html格式返回视图所以如果你想要回发,你需要使用window.href =&#34; url&#34 ;;