从 javascript 重定向到操作

2023-11-25

我有一个 MVC4 项目,在客户端我需要重定向到特定的操作方法。我已阅读以下帖子如何从 JavaScript 方法重定向到操作?,下面有一条关于使用的评论:

window.location.href = "/{controller}/{action}/{params}";

我已经尝试过了,但它不适用于我的项目安装在 IIS 中的位置。

我的项目已发布到:http://localhost/SomeName.SomeOtherName/

我需要到达:http://localhost/SomeName.SomeOtherName/Home/Logout

当我按照上一篇文章的建议使用“/Controller/Action”时,我会到达这里:localhost/Home/Logout这是不正确的。

我尝试将发布位置(与上面的发布字符串相同)保留在 web.config 文件中并构建字符串(连接:发布位置 + '/Home/logout'),但这也不起作用。下面是我为此使用的 stmt。奇怪的是,这只是将当前页面的 url 与我构建的 url 连接起来。这不仅无效,而且我还收到“潜在危险的 request.path...”错误之一。

 window.location.href = "\"" + url + "/Home/logout" + "\"";

如果我使用 $(location.hostname) 构建字符串,也会发生同样的事情。

有什么想法吗?


生成控制器操作的 url 时,始终使用 url 助手。例如,如果您的重定向脚本位于视图内,您可以这样做:

<script type="text/javascript">
    window.location.href = '@Url.Action("LogOut", "Home")';
</script>

The Url.Action服务器端助手将确保生成正确的 url,无论您的应用程序是否托管在虚拟目录中。

如果在另一种情况下,您的 javascript 位于一个单独的 js 文件中(这显然是最佳实践),您无法使用服务器端帮助程序,那么您有几种可能性:

  • 使用在视图内计算并由脚本使用的全局 JavaScript 变量:

    <script type="text/javascript">
        var logoutUrl = '@Url.Action("LogOut", "Home")';
    </script>
    

    然后在你的脚本中的某个地方:

    window.location.href = logoutUrl;
    
  • 在某些 DOM 元素上使用 HTML5 data-* 属性,这些元素会以某种方式与注销一个用户的。例如,这可能是某个 div 或按钮:

    <div id="logout" data-url="@Url.Action("LogOut", "Home")">Log out</div>
    

    然后在你的脚本中:

    $('#logout').click(function() {
        window.location.href = $(this).data('url');
    });
    

    显然,这似乎是一个愚蠢且过于简单的示例,因为在这种特殊情况下,您只需使用Html.ActionLink生成一个 LogOut 锚点,而无需担心任何 javascript 或类似的东西,但希望它能为您提供一些现实世界场景的示例。

请注意,在所有示例中,如何使用 url 帮助器来生成控制器操作的正确 url,并考虑任何可能的虚拟目录。这是最重要的规则:never在 ASP.NET MVC 应用程序中硬编码 url。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 javascript 重定向到操作 的相关文章

  • javascript 中对象的“异步”循环

    通常 我们可以对数组和对象进行循环来迭代属性 值 但循环是阻塞的 但是 超时可用于模拟异步循环 我设法为数组做到了这一点 http jsfiddle net LHhy2 do stuff function asyncLoop i do st
  • Jasmine-jQuery loadFixtures 未定义

    我对整个茉莉花的事情仍然很陌生 在过去的几个小时里我陷入了这个问题 我尝试使用 loadFixture 加载外部夹具文件 我使用 Jasmine 2 0 0 和 Jasmine jQuery 2 0 5 ReferenceError loa
  • 创建一个简单的 10 秒倒计时

    我想要一行这样写的 Your download will begin in 10 9 8 etc Beginning on page load seconds 我已经设置了 10 秒下载文本 并且我还查看了其他 stackoverflow
  • html 表格单元格的条件格式

    是否有现成的解决方案可以对 HTML 表格进行条件格式设置 通过条件格式 我更感兴趣的是根据该列或其他列 在同一个表中 的值 数字 将不同的颜色作为单元格背景 类似于我们在 Excel 条件格式 gt 色阶 gt 红黄绿中的内容 我想在通过
  • 在鼠标光标位置添加 cytoscape 节点

    我想在画布上的单击事件上的鼠标箭头位置添加一个 cytoscape 节点 我怎样才能做到这一点 我的方法 效果不太好 我可以通过单击创建一个节点 但无法确保创建的节点的位置位于我单击的位置 使用这样的东西 cy click function
  • 如何动态突出显示网页上的字符串?

    我想创建带有 url 的页面 例如 http xyzcorp schedules 2015Aug24 Aug28 Jim Hawkins http xyzcorp schedules 2015Aug24 Aug28 Billy Bones
  • 无法实例化模块 [$injector:unpr] 未知提供程序:$routeProvider

    我从 AngularJS 升级时收到此错误1 0 7 to 1 2 0rc1 ngRoute 模块不再是核心的一部分angular js文件 如果您继续使用 routeProvider 那么您现在需要包括angular route js在你
  • 使用文件 API 将资源加载到 Three.js 中

    我想创建导入 3D 模型以在浏览器中查看的功能 方法是使用File API http www html5rocks com en tutorials file dndfiles Three js 加载器在我托管的文件上运行良好 我的理解是加
  • 使用 JavaScript 生成 PDF 文件

    我正在尝试将 XML 数据从网页转换为 PDF 文件 并且希望能够完全在 JavaScript 中完成此操作 我需要能够绘制文本 图像和简单的形状 我希望能够完全在浏览器中完成此操作 我刚刚写了一个名为jsPDF https github
  • jQM / jquery-collagePlus 使用问题

    我正在使用 jQM 构建应用程序 并且尝试使用 jquery collagePlus http ed lea github io jquery collagePlus http ed lea github io jquery collage
  • console.log() 显示同一对象属性的矛盾值

    我想我可能要疯了 我使用 console log 来查看对象的状态 然后在下一行对同一对象的特定属性执行 console log 并为每个属性获取不同的值 我正在使用的代码是 console log this pictures Items
  • ToggleClass 动画 jQuery?

    我的网站上有一个部分 当用户单击时我希望它展开 我正在使用 jQuerytoggleClass为了这 expandable function e e preventDefault this closest article toggleCla
  • JavaScript 测验在提出所有问题之前结束

    我现在正在学习 JavaScript 并且正在创建一个测验 我的测验运行正常 控制台中没有任何错误 但它会跳过问题 有时会在回答所有问题之前结束测验 即使给出正确答案 也会减少时间 我不太确定为什么它会这样做 因为在我看来它的编码是正确的
  • Knockout.js 安全绑定

    我想使用带有淘汰赛的安全绑定 为此我使用敲除安全绑定 js https github com brianmhunt knockout secure binding 谁能解释一下为什么下面的代码不起作用 它会抛出一个错误 未捕获 淘汰 安全
  • Firebase 警告:使用 Firebase Cloud Function 搜索数据时使用未指定的索引

    我构建了一个 Firebase 云函数 用于查找 IsNotificationEnabled 值等于 true 的用户 我的部分职能 export const sendPushNotification functions https onR
  • IE 中的每个 JavaScript 支持?

    我有这个代码
  • JavaScript:测试与执行

    我想知道检查字符串 例如邮件 密码等 的最佳方法是什么 i exec a vs i test a exec返回值 test true test 1 way var mail req body mail if check mail exec
  • MongoDB中如何通过引用字段进行查询?

    我有两个 Mongo 模式 User id ObjectId name String country ObjectId Reference to schema Country Country id ObjectId name String
  • Internet Explorer 9 是否会因数组和对象文字末尾的额外逗号而卡住?

    现代浏览器和 Node js 等环境允许您说 a 1 b 2 或 1 2 3 这在历史上一直是 Internet Explorer 的问题 Internet Explorer 9 中修复了此问题吗 对此有两种不同的答案 一种是对象初始值设定
  • 从输入类型编号获取无效值

    我正在使用输入类型数字 当它无效时 我如何从中获取值 例如 使用类型编号并仅打印 e 这本身是无效的 我正在使用 React 但我认为这个问题非常普遍 onChange event console log event target valu

随机推荐

  • 如何在按角度单击按钮时将列表滚动到顶部?

    您能告诉我如何在按角度单击按钮时将列表滚动到顶部吗 我试过这样 scrollToTop el el scrollIntoView
  • 在 C++ 中获取环 0 模式 (Windows)

    如何在 Windows 7 或 Vista 中为我的进程获取 Ring 0 操作模式 允许任意代码在环 0 中运行违反了基本的操作系统安全原则 只有OS内核和设备驱动程序运行在ring 0中 如果要编写ring 0代码 请编写Windows
  • 计算 R 中唯一的分类变量对[重复]

    这个问题在这里已经有答案了 如果我有这个数据 One lt c rep X 4 rep Y 3 rep Z 2 Two lt c rep A 2 rep B 6 rep C 1 df lt data frame One Two One Tw
  • 将策略定义与执行分离时了解 Polly 策略的语义

    With Polly我希望在两个不同的语句中定义我的策略并执行该策略 如下所示 Policy definition var policy Policy HandleResult
  • 解决 paramiko 上的线程清理问题

    我有一个使用 paramiko 的自动化流程 但出现以下错误 Exception in thread Thread 1 most likely raised during interpreter shutdown
  • 如何对单元格的元素进行排序?

    我有一个像这样的细胞 A 1 1 1 2 3 A 2 1 4 2 A 3 1 3 2 5 4 6 A N 1 10 2 5 7 N is very large 换句话说 这个单元格的每个元素的列数是不同的 没有明确的模式 现在 我想根据位于
  • 如何在有向图中找到最小顶点集,以便可以到达所有其他顶点

    给定一个有向图 我需要找到可以到达所有其他顶点的最小顶点集 因此 该函数的结果应该是最小数量的顶点 从该顶点可以通过有向边到达所有其他顶点 可能的最大结果是如果没有边 则将返回所有节点 如果图中存在循环 则对于每个循环 选择一个节点 哪一个
  • 撇号被翻译为“tm”。哪个 PHP 函数会将其显示为 '?某物_解码?

    我正在抓取一些推文并将其打印在我的网站上 并且大写撇号被呈现为 tm 不是很好 我应该通过哪个 php 函数运行字符串才能让这些奇怪的字符显示为更接近 我在 Chrome 中遇到了这个问题 添加一个 到 头部 部分修复它
  • 正确的 C 预处理器宏无操作

    对于调试日志记录 我经常看到并使用类似的东西 ifdef DEBUG define DLOG fmt args printf s d fmt FILE LINE args else define DLOG fmt args endif 但在
  • Xamarin 中与分辨率相关的字体大小

    我是 Xamarin 新手 正在为我的第一个应用程序而苦苦挣扎 我有一张图像 上面有一个入口视图 这样我就创建了一个自定义条目背景 不过 条目的字体大小不会随着具有不同分辨率的不同设备而缩放 当我调整设备 A 的字体大小并现在在设备 B 上
  • 如何使用用户定义的类对象作为networkx节点?

    类点定义为 其中还有一些方法 属性和东西 但这只是最小的部分 class point def init self x y self x x self y y 于是 我看到了这个问题 但是当我尝试应用它时 它返回一个错误 G nx Graph
  • Oracle SQL 插入多行并返回一些内容

    在 Oracle 中 可以通过执行如下查询来插入多行 INSERT ALL INTO mytable column1 column2 column3 VALUES val1 1 val1 2 val1 3 INTO mytable colu
  • 使用 Hibernate PreInsertEventListener 更改实体

    我正在使用 Hibernate 4 1 尝试调用 PreInsertEventListener 来更新实体 然后再将其插入数据库 基于此处的文章 http anshuiitk blogspot ca 2010 11 hibernate pr
  • 如何在两个HTML页面之间交换变量?

    我有两个 HTML 页面 example1 html and example2 html 我如何传递变量example1 html to example2 html使用查询字符串 并检索该变量example2 html不使用任何服务器端代码
  • 元素不会保持居中,尤其是在调整屏幕大小时

    我的问题是我无法水平居中三角形指针 好吧 对于某些窗口大小 我可以将指针居中 但是当我缩小或扩展窗口时 它会再次将其放置在错误的位置 我缺少什么 body background 333333 container width 98 heigh
  • 如何从 Symfony2 config.yml 读取配置设置?

    我在 config yml 文件中添加了一个设置 如下所示 app config contact email email protected 对于我的一生 我不知道如何将其读入变量 我在我的一个控制器中尝试了类似的操作 recipient
  • 元素之间的间距

    我是 CSS 和 HTML 的完全初学者 我正在构建我的第一个基本培训页面 我现在想做的是在两个元素之间留出间距而不使用 br 目前我正在使用这个 formClear clear left height 25px 它适用于间距 但你这是正确
  • 更多 Pythonic/Pandaic 方法来循环 pandas 系列

    这很可能是非常基本的东西 但我无法弄清楚 假设我有一个这样的系列 s1 pd Series 1 1 1 2 2 2 3 3 3 4 4 4 如何在无需恢复使用 for 循环的情况下对该系列的子系列进行操作 例如 假设我想将其变成一个包含四个
  • 使用 papa parse 解析大型 csv 文件

    我正在尝试加载一个大约 100k 行的文件 到目前为止浏览器已经崩溃 本地 我上网查了一下 发现 Papa Parse 似乎可以处理大文件 现在加载到文本区域的时间减少到大约 3 4 分钟 加载文件后 我想要执行更多 jQuery 来执行计
  • 从 javascript 重定向到操作

    我有一个 MVC4 项目 在客户端我需要重定向到特定的操作方法 我已阅读以下帖子如何从 JavaScript 方法重定向到操作 下面有一条关于使用的评论 window location href controller action para