在ASP.NET MVC中为JavaScript生成动作URL
发布时间:2020-12-16 00:37:39 所属栏目:asp.Net 来源:网络整理
导读:我正在尝试通过调用具有特定参数的控制器中的动作来重定向到另一个页面。我试图使用这一行: window.open('%= Url.Action("Report","Survey",new { id = ' + selectedRow + ' } ) %'); 但我不能让它工作;它给出以下错误: CS1012: Too many characters in ch
我正在尝试通过调用具有特定参数的控制器中的动作来重定向到另一个页面。我试图使用这一行:
window.open('<%= Url.Action("Report","Survey",new { id = ' + selectedRow + ' } ) %>'); 但我不能让它工作;它给出以下错误:
无法生成客户端的操作URL?或者,我必须通过提供参数并获取所需的URL来进行Ajax调用?这似乎是不对的,但是如果这是唯一的方法,我想。 有更容易的解决方案吗? 解决方法
请记住,<%和%>之间的所有内容被解释为C#代码,所以你实际在做的是尝试评估C#的以下行:
Url.Action("Report",new { id = ' + selectedRow + ' } ) C#认为单引号是围绕一个字符文字,因此你得到的错误消息(字符文字只能包含一个单一的字符在C#) 也许您可以在页面脚本(页面HEAD中的某处)生成URL一次,请执行以下操作: var actionUrl = '<%= Url.Action("Report",new { id = "PLACEHOLDER" } ) %>'; 这将给你一个包含你需要的URL的Javascript字符串,但是使用PLACEHOLDER而不是数字。然后将您的点击处理程序设置为: window.open(actionUrl.replace('PLACEHOLDER',selectedRow)); 即处理程序运行时,您可以在预先计算的URL中找到PLACEHOLDER值,并将其替换为所选行。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net – 实体框架和MVC应用程序中的奇怪编译错误
- Asp.Net / C#何时?等于A? (é等于E)
- asp.net-membership – 泛型和ASP.Net成员资格提供者
- asp.net-mvc – 我应该使用AsyncController在ASP.NET MVC 4
- asp.net – 在客户端启用/禁用RequiredValidator /不启动Cu
- asp.net – 将会话变量传递给SQLDataSource时出错
- asp.net – 错误:找不到此项目类型所基于的应用程序
- ASP.NET路由:令牌之间的字面子段和来自文字子段的字符的路
- asp.net-mvc-3 – 放置模板视图和骨干视图代码的最佳实践是
- asp.net – 对于在Azure部署的Web.config中存储密码的正确程
推荐文章
站长推荐
- 在servicestack中使用asp.net身份验证
- asp.net – 离线使用谷歌地图
- asp.net – 在aspnet核心1应用程序的逻辑层中获取
- 在ASP.NET中清除FileUpload内容
- asp.net – httpCookies requireSSL在http上设置
- asp.net-mvc-3 – Razor MVC 3 RC2 – 带动态文本
- 如何比较vbscript / ASP中的两个日期?
- asp.net-mvc – ModelMetadata.Watermark和MVC V
- asp.net – Asp:CheckBox复选框和文本不在同一行
- ASP.NET Server.Transfer()问题
热点阅读