Asp.net core mvc Core2MVCAJAX重定向以显示视图

Asp.net core mvc Core2MVCAJAX重定向以显示视图,asp.net-core-mvc,asp.net-ajax,Asp.net Core Mvc,Asp.net Ajax,我有一个使用jQuery Datatable的应用程序,我想单击一行,选择id,然后打开一个视图,该视图允许编辑该视图并更新基础数据库。 Ajax让我看到了用于编辑视图的控制器操作,但我无法显示视图本身。相反,控制器操作只是返回到ajax。我尝试过许多战术,但毫无乐趣。以下是一个基于标准核心模板的简单示例: @section scripts{ <script> $(document).on('click', 'button.number', function

我有一个使用jQuery Datatable的应用程序,我想单击一行,选择id,然后打开一个视图,该视图允许编辑该视图并更新基础数据库。 Ajax让我看到了用于编辑视图的控制器操作,但我无法显示视图本身。相反,控制器操作只是返回到ajax。我尝试过许多战术,但毫无乐趣。以下是一个基于标准核心模板的简单示例:

@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调用重定向。它以html格式返回视图,因此,如果要回发,则需要使用window.href=“url”

调用服务器方法(我假设它不是真正的
About()
?),但从未对它返回的部分视图执行任何操作-要将其添加到DOM中,需要在
success
callback-
success:function(response){$(someElement).html(response);}
但是听起来你真的想重定向到一个新的视图,在这种情况下,不要使用ajax-ajax的全部目的是保持在同一个页面上(ajax调用不能重定向)。谢谢Stephen,是的,我想重定向到一个新的视图。我的小例子从索引页面开始,我试图重定向到About页面(标准模板)。我不理解ajax的这个基本概念,因为它不能重定向——但我现在确实理解了!我放弃了这种方法,将数据表行(在我的实际项目中)中选择的id放入一个输入字段,然后使用一个按钮发布到一个新的控制器操作。即使方法稍微复杂一点,它也可以正常工作。使用
@Html.ActionLink()
生成重定向的
有什么不对?步骤:在我的实际项目中,我需要使用JS从用户选择的Datatable行中提取一个值。因此,我现在所做的与您的ActionLink建议类似:我使用JS获取值,然后将其放入HTML字段中,这样我就可以使用razor命令重定向。我不认为有一种方法可以在JS中使用razor命令?
 $(document).on('click', 'button.number', function () {
            alert($(this).val());
            $.ajax({
                method: 'GET',
                url: '@Url.Action("About", "Home")'
            }).success: function(result){
       ///this line 
window.href='redirect url';

    }});;
        });