Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery或Javascript重定向到控制器/操作_Javascript_Jquery_Asp.net Mvc_Razor - Fatal编程技术网

Jquery或Javascript重定向到控制器/操作

Jquery或Javascript重定向到控制器/操作,javascript,jquery,asp.net-mvc,razor,Javascript,Jquery,Asp.net Mvc,Razor,我有以下第一次使用的代码: $("#CompDD").change(function () { //var parts = (window.location.pathname.split("/")); var ctrlName = '@ViewContext.RouteData.Values["Controller"].ToString()'; var actnName = '@ViewContext

我有以下第一次使用的代码:

$("#CompDD").change(function () {
                //var parts = (window.location.pathname.split("/"));
                var ctrlName = '@ViewContext.RouteData.Values["Controller"].ToString()';
                var actnName = '@ViewContext.RouteData.Values["Action"].ToString()';
                var url = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //delete ctrlName;
               // delete actnName;
                //window.location = ($(location).attr('href') + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //window.location = (ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());
                //$(location).attr('href', url);
                window.location.href = url;
                //alert(ctrlName + "\n" + actnName);
            });
但是,在后续更改相关下拉列表(#CompDD)时,它将在链接末尾添加另一个控制器/操作,例如,在现有“用户/索引”末尾添加另一个“用户/索引”,然后添加搜索变量等

请原谅我代码上的注释和内容。我如何让Jquery(或javascript)在不反复追加控制器名称和操作名称的情况下重定向,或者最好的方法是什么

编辑:这么简单的修复!我必须在URL字符串中添加根斜杠,例如:

var url = ("/" + ctrlName + "/" + actnName + "/?SearchString=" + $('#CompDD option:selected').text() + "&atton=" + $('#AttDD option:selected').val());

请注意我构造的字符串开头的正斜杠……哎呀

使用
Url.Action
helper方法构建操作方法的路径

$("#CompDD").change(function () {

   var baseUrl="@Url.Action("Home","Search")";
   alert(baseUrl);
   // Now append your query string variables to baseUrl
   // Ex : baseUrl=baseUrl+"?searchString=testing"; 
   window.location.href=baseUrl;

});

假设您想导航到
主页
控制器中的
搜索
操作方法。

使用
Url.action
助手方法构建操作方法的路径

$("#CompDD").change(function () {

   var baseUrl="@Url.Action("Home","Search")";
   alert(baseUrl);
   // Now append your query string variables to baseUrl
   // Ex : baseUrl=baseUrl+"?searchString=testing"; 
   window.location.href=baseUrl;

});

假设您想导航到
主页
控制器中的
搜索
操作方法。

您可以使用
window.location.search=“?SearchString=something”
等设置查询字符串部分。为什么不使用
FormMethod将下拉列表放在表单中。获取
并提交表单?adeno,如何使用window.location.search?您可以使用
window.location.search=“?SearchString=something”
等设置查询字符串部分。为什么不使用
FormMethod.Get
将下拉列表放在表单中并提交表单呢,您将如何使用window.location.search?我的问题是控制器保持不变,但根据它们所查看的索引视图(index1、index2或index3),操作不同。我可以为每个索引视图重新编写代码,但我希望保存代码并在母版页上使用该函数。我的问题是控制器保持不变,但操作不同,这取决于它们正在查看的索引视图(index1、index2或index3)。我可以为每个索引视图重新编写代码,但我希望保存代码并在母版页上具有该功能。