2017-08-11 122 views
2

嘿,我有一个很奇怪的问题我想不通.....window.location的没有正确更新

基本上我有我的控制器内的方法返回基于一个什么值的视图你通过它。

前端

window.location = '<%=Url.Action("PaymentTool", "PaymentHistory") %>' + '/' + profile.id; 

和后端

public ActionResult PaymentTool(string username, int? profileID) 

现在,这是第一次运行的伟大工程。但是,无论何时我再次运行它而不刷新页面,我都会遇到问题。

我已经登录它证实了这一点,它看起来像

'<%=Url.Action("PaymentTool", "PaymentHistory") %>'

持有旧值和增加新的价值到它与如

PaymentHistory/PaymentTool/123/1234

的网址结束

当正确的工作网址将是

PaymentHistory/PaymentTool/1234

我已注销profile.id,每次都是单个数字,并且不存储旧值。

任何帮助将不胜感激,因为这对我来说似乎是一个非常奇怪的错误。

+1

有了这么少的代码,我们只能推测和猜测。显示更多代码并帮助我们重现问题。 [如何创建一个最小化,完整和可验证的示例](https://stackoverflow.com/help/mcve) – tnw

+1

也许你需要查看你的URL并在添加ID之前在PaymentTool /后截断任何内容。 – tnw

+0

“<%' and '%>”之间的内容是服务器端代码,当您访问服务器并写入客户端时将进行评估。所以,如果你“不用刷新页面而再次运行它”,你就不会访问服务器,而且这也不会改变。 – James

回答

2

呀,这是MS所谓的“功能” ......如果你有一个路由属性,那么你需要使用一个非常恼人的错误:

Url.Action("myform", "testing", new { code = "" } 

其中code是的任何名称路由属性变量在控制器中。然后,你需要玩一下它来创建你的新路线。