2017-08-11 27 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是的任何名稱路由屬性變量在控制器中。然後,你需要玩一下它來創建你的新路線。