我想将URL放入@URL.content(“”)
中。
我允许用户在我的门户中选择他们的主页(只要他们在主页上显示任何不必要的内容),并且我将这个值放在我的user表的一列中。
只要此列为空,我就会显示一个模式来选择它的主页。因此,一旦连接返回“success”,我就会重定向到正确的页面,但我无法在@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”在当前上下文中不存在
您将在客户端的JS中定义URL
。url.action()
调用发生在服务器端。两者不能以您尝试的方式直接交互。
这种情况下的解决办法是直接向url.action()
提供session[“spaccueildefaut”]
值,因为它们都在服务器端。
此外,如果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的技术至关重要:客户端编程和服务器端编程之间有什么区别?