C# Javascript window.location在MVC3中不工作
我有一个页面,通过名为C# Javascript window.location在MVC3中不工作,c#,javascript,jquery,asp.net-mvc,asp.net-mvc-3,C#,Javascript,Jquery,Asp.net Mvc,Asp.net Mvc 3,我有一个页面,通过名为EntityIndex的ActionResult呈现,该页面将int id作为参数并加载该实体 在该视图中,用户可以从下拉列表中选择其他相关实体,并且应通过将所选ID从下拉列表发送到具有新ID的相同操作EntityIndex,从而重新加载视图 我在下拉列表中使用jQuery更改事件来导航和重新加载页面: $("#RelatedEntity").change(function () { window.location = '@Url.Action("EntityInd
EntityIndex
的ActionResult
呈现,该页面将int id
作为参数并加载该实体
在该视图中,用户可以从下拉列表中选择其他相关实体,并且应通过将所选ID从下拉列表发送到具有新ID的相同操作EntityIndex
,从而重新加载视图
我在下拉列表中使用jQuery更改事件来导航和重新加载页面:
$("#RelatedEntity").change(function () {
window.location = '@Url.Action("EntityIndex", new {id = ""})' + '/' + $(this).val();
});
这就是行动
public ActionResult EntityIndex(int id) {
... gets entity by id here ...
return View(model);
}
该操作在命中时工作正常,但上面的jQuery行失败并出现错误:
http://localhost:1798/Entity/EntityIndex/@Url.Action("EntityIndex", new {id = ""})/539
出于某种原因,
窗口.location
触发@Url.Action
将操作视为字符串,而不是要导航到的操作。。。Url.Action
有什么问题使它无法正常运行?您的JQuery有点不正常。使用默认路由并指定无ID将生成:
/控制员/行动/
所以你需要做的就是把你的价值放在最后。试试这个:
$("#RelatedEntity").change(function () {
window.location = '@Url.Action("EntityIndex")' + $(this).val();
});
应给您(假设值为23):
/财务主任/行动/23
您的JQuery有点不对劲。使用默认路由并指定无ID将生成: /控制员/行动/ 所以你需要做的就是把你的价值放在最后。试试这个:
$("#RelatedEntity").change(function () {
window.location = '@Url.Action("EntityIndex")' + $(this).val();
});
应给您(假设值为23):
/财务主任/行动/23
我认为你的问题是这个问题的重复:@JanAagaard它不是一个复制品,这更多的是关于路由。我认为你的问题是这个问题的重复:@JanAagaard它不是一个复制品,这更多的是关于路由。不幸的是,这不起作用,使用它我导航到它不会给我一个巨大的丑陋的IIS错误,但是更多的是“这个字符串参数到底是什么?”输入errorAh等等,你是想在外部JS文件中使用它还是在Razor视图之外的其他地方使用它?是的!此JS位于单独的文件Entity.JS中,位于document.ready部分中,并通过脚本tagAh引用到视图中,因此您不能在外部文件中使用Razor语法,您需要做的是将Razor生成的链接存储在隐藏的输入中,或者从视图中调用外部JS文件中的函数,并将Razor生成的链接作为参数传递给函数,然后将其全局存储在JS文件中的变量中。在JS文件中使用
@URl…
实际上就是使用带有@in:)的字符串。哈哈哈,别担心,这会发生在我们当中最好的人身上:)。我肯定我以前试过,但失败了!不幸的是,这不起作用,使用我导航到的,不会给我一个大的丑陋的IIS错误,我得到的,但更多的是一个'这该死的字符串参数是什么?'键入errorAh等等,你想在一个外部JS文件或其他东西,而不是剃须刀视图中使用它吗?是的!此JS位于单独的文件Entity.JS中,位于document.ready部分中,并通过脚本tagAh引用到视图中,因此您不能在外部文件中使用Razor语法,您需要做的是将Razor生成的链接存储在隐藏的输入中,或者从视图中调用外部JS文件中的函数,并将Razor生成的链接作为参数传递给函数,然后将其全局存储在JS文件中的变量中。在JS文件中使用@URl…
实际上就是使用带有@in:)的字符串。哈哈哈,别担心,这会发生在我们当中最好的人身上:)。我肯定我以前试过,但失败了!