2014-04-22 14 views
0

我有一個工具,允許人們更新他們的用戶名。這個工具有很多選項卡,每個動作都有一個UserGuid的url參數。當用戶更改他們的用戶名時,局部視圖會顯示一條消息,指出「用戶已成功更新」。我只有一個簡單的JavaScript功能,可在2秒後將用戶重定向回用戶詳細信息頁面。唯一的問題是操作/方法需要UserGuid才能正常工作。所以現在,我收到一個錯誤,說它是空的。如何在JavaScript函數中傳遞此userguid以使重定向正常工作?MVC JavaScript重定向,我需要傳遞一個UserGuid到?

下面是部分觀點:

@{ 
var umessage = TempData["message"]; 
} 
<div class="form_section"> 
<div class="form_item"> 
    <div class="frm_label"> 
     @umessage 
    </div> 
    @Html.HiddenFor(model => model.UserGuid) 
</div> 
</div> 
<script type="text/javascript"> 
window.setTimeout(function() { 
    window.location.href = '@Url.Action("UserInfo", "User")'; 
}, 2000); 
</script> 

正如你會發現,我對UserGuid隱藏字段。任何幫助,將不勝感激。

回答

0

Url.Action接受路由參數。這應該適合你。

<script type="text/javascript"> 
window.setTimeout(function() { 
    window.location.href = '@Url.Action("UserInfo", "User", new { userId = mode.UserGuid })'; 
}, 2000); 
</script> 

您可以根據您的操作接受的內容更改參數名稱。我不確定你的UserInfo操作對於id有什麼參數名稱。

+0

我的參數名稱接受一個「uniqueUserId」作爲Guid。唯一的問題是,我試過這個。你可以在我發佈的html上看到我有一個隱藏的UserGuid字段,即使我通過url操作傳遞了該參數,我在uniqueUserId參數上得到了空引用異常錯誤。 – Skrubb

+0

是的,我看到你有隱藏的UserGuid,但你似乎並沒有將UserGuid傳遞給Url.Action方法作爲路由參數。 – milagvoniduak

+0

我試過了,當我在url路由參數中使用它時,它一直給我空引用異常。我很好奇它爲什麼會這樣做。即使在我調試程序時,它也會顯示它正確地獲取userguid。 – Skrubb

相關問題