Jquery或Javascript重定向至“控制器/操作”诊断树

5tmbdcev  于 2023-02-07  发布在  Java
关注(0)|答案(2)|浏览(140)

我有下面的代码,在第一次工作左右:

$("#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),它会添加另一个控制器/动作到链接的末尾,例如,它添加另一个“赞助人/索引”到现有的“赞助人/索引”的末尾,然后它添加搜索srting变量等。
请原谅我的代码上的注解和东西。我如何让Jquery(或javascript)重定向而不一遍又一遍地附加控制器名称和操作名称,或者最好的方法是什么?
编辑:这么简单的修复!我不得不添加根斜杠到URL字符串,这个工作的例子:

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

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

h43kikqp

h43kikqp1#

使用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;

});

假设您希望导航到Home控制器中的search操作方法。

3zwtqj6y

3zwtqj6y2#

function RedirectUrl() {
        if (domElement.textfor.val() == "Index") {
            window. location.href = E_host.AppVar.AppHost + "/Home/index";
        }
}

相关问题