1

ユーザーが「詳細」リンクをクリックして詳細ページに移動できる 2 つの異なるページがあります。

詳細ページには、元のページにユーザーを導く「戻る」ボタンがあります。もちろん、元の 2 つのページの 1 つです。

また、もう 1 つ問題があります。リターン リンクの 1 つで、追加の匿名オブジェクトを指定する必要があります。

現在の私のビューコードは次のとおりです。

@{
    MvcHtmlString backLink = null;
    if (Model.ReturnPage == MatchResultReturnPage.Search)
    {
        backLink = Html.ActionLink("GoBack", "Search", new {search = true});
    }
    else
    {
        backLink = Html.ActionLink("GoBack", "Dashboard");
    }
} 

コントローラーで、 「ダッシュボード」url.referrerが含まれているかどうかを確認し、「ダッシュボード」に設定Model.ReturnPageます

これを行うよりクリーンな方法はありますか?

4

3 に答える 3

2

をモデルのプロパティReturnLinkとして配置し、コントローラー内に設定します。これにより、そのロジックをビューに配置する必要がなくなります。

于 2013-01-22T13:13:56.053 に答える
1

確かにもっときれいな方法はありますが、現在のコードのように、何をしようとしているのかを理解するのは非常に簡単です。

そのままにして、 #region ラッパーを配置し、作業する必要がない場合は非表示にします。

#region get referrer page
MvcHtmlString backLink = null;
if (Model.ReturnPage == MatchResultReturnPage.Search)
{
    backLink = Html.ActionLink("GoBack", "Search", new {search = true});
}
else
{
    backLink = Html.ActionLink("GoBack", "Dashboard");
}
#region

私が提案する唯一のことは、ビューではなくコントローラーでこのチェックを行い、チェックの結果をモデルプロパティまたはViewBagに入れることです。

コントローラーでヘルパーにアクセスするには、次の手順を実行します。

var URL = new UrlHelper(this.Request.RequestContext).Action("MyAction", "MyController", new { id = 123 });
于 2013-01-22T13:26:27.120 に答える
0

おそらく、戻るボタン全体を JavaScript で実装する必要があります。履歴オブジェクト
の使用

<a href=”javascript:history.back()”&gt; [Back]</a>
于 2013-01-22T13:18:24.857 に答える