我正在使用 javascript 加载一个动作,并发现当调用动作方法时,参数之一“returnUrl”始终为空。我已经确认 returnUrl 使用 firebug 正确填充在 javascript 中,但是在执行 .load 函数和 action 方法之间的某个地方,returnUrl 的值丢失并设置为 null。我发现如果我删除“id”参数并且只使用“returnUrl”参数,returnUrl 具有正确的值。我花了很多时间试图弄清楚这里发生了什么并且完全被难住了,我会感谢一些帮助。
我的Javascript:
<!-- Review Dialog Popup -->
<script type="text/javascript">
function showWriteReviewDialog(gameId, returnUrl) {
if( $("#Review").length == 0)
{
var url = "@Url.Action("WriteUserReview", "UGDBUser", new { id = "PLACEHOLDER", returnUrl = Request.Url.ToString() })";
// ajax load
$('#writereview').load(url.replace('PLACEHOLDER', gameId));
} else {
// clear summary & reviewtext fields
$('#summary,#reviewtext').val('');
//reopen the write review dialog which was previously rendered
$("#Review").dialog({
modal: true,
autoOpen: true,
resizeable: false
});
}
};
</script>
我的愚蠢行动方法:
[Authorize]
public ActionResult WriteUserReview(Guid id, string returnUrl)
{
return Redirect(returnUrl);
}