JavaScriptを使用してアクションをロードしていますが、アクションメソッドが呼び出されると、パラメーターの1つ「returnUrl」が常にnullになることがわかりました。ファイアバグを使用してreturnUrlがjavascriptに正しく入力されていることを確認しましたが、.load関数の実行とアクションメソッドの間のどこかで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);
}