jquery - 在 MVC5 Url.Content() 中放置一个 JS 变量
问题描述
我想在@Url.Content("")
.
我允许用户在我的门户中选择他们的主页(只要他们在主页上显示任何不必要的内容)并将这个值放在我的用户表的列中。
只要此列为空,我就会显示一个模式来选择其主页。因此,一旦连接返回“成功”,我就会重定向到正确的页面,但我无法将变量@Url.Content(HERE)
与我的列中的值一起传递(示例:)/Home/Index
。
这是我的代码:
IdentificationSucces = function(data) {
if (@Session["SpAccueilDefaut"]) {
var url = @Session["SpAccueilDefaut"].ToString();
window.location.href = '@Url.Action("" + url +"")';
} else {
window.location.href = '@Url.Content("~/Intranet/Index")';
}
};
我的url
变量有误,这是消息:
当前上下文中不存在名称'url'
解决方案
您在url
客户端的 JS 中进行定义。Url.Action()
调用发生在服务器端。两者不能以您尝试的方式直接交互。
在这种情况下,解决方法是Session["SpAccueilDefaut"]
直接将值提供给它们,Url.Action()
因为它们都是服务器端的。
另外,如果 in 中的值Session["SpAccueilDefaut"]
是一个字符串,从后面用到的上下文看来就是这种情况,那么你需要在 JSif
条件中使用引号将其分隔:
IdentificationSucces = function(data) {
if ('@Session["SpAccueilDefaut"]') {
window.location.href = '@Url.Action(Session["SpAccueilDefaut"].ToString())';
} else {
window.location.href = '@Url.Content("~/Intranet/Index")';
}
};
顺便说一句,我建议您研究客户端和服务器端编程之间的区别。理解这一点对于开发基于 Web 的技术至关重要:客户端和服务器端编程之间有什么区别?
推荐阅读
- node.js - 错误:找不到模块“C:\Users\senyo\AppData\Roaming\npm\node_modules\expo-cli\bin\expo.js”
- css - 选择父类时如何排除某些类
- excel - 检查服务器是否可达
- javascript - 如何将参数传递到子函数中?
- google-cloud-platform - 将启动脚本日志推送到 gcp 中的单独文件
- sql - CURSOR 的使用会提高在 SQL 中使用 PIVOT 进行查询的性能/速度吗?
- python - Python Linux IBM Lotus Notes 9 - 导出数据库
- python - 如何使用 Python 从我的 CSV 文件生成嵌套的 JSON 数据
- c# - 外键部署到 SQL 服务器的问题 - 代码优先 - 空外键
- javascript - 在 base64 中发送更大的图像时,Nodemailer 崩溃