0

次のケースがあります。

@model MvcApp.Models.MyAppModel
@{ ViewBag.ActionName = this.Context.Request.RequestContext.RouteData.Values["action"]; }

私がチェックしたデバッガーを使用して、Viewbag.ActionNameがその値を受け取ることを確信しています。ただし、コントローラの ViewBag は常に空です。なぜ?私はこれらのリクエスト間でのみこれを使用しています (つまり、私は常にこの順序を尊重します。このビューから、常に削除するアクションリンクをクリックします。教えてください。乾杯。

[HttpGet]
public ActionResult Delete(int id)
{
    string actionName = ViewBag.ActionName;

必要な詳細はお尋ねください。

4

2 に答える 2

2

ビュー バッグ内のデータは、単一のリクエストの間だけ有効です。しかし、2 つのリクエストについて話しています。最初のリクエストはページをレンダリングし、2 番目のリクエストは削除アクションを処理します。そのため、コントローラーのビュー バッグは最初は空です。

于 2012-07-20T08:36:18.627 に答える
1

リクエストの流れは次のとおりです。最初にコントローラー、次にビュー。

したがって、答えはノーです。ビューで行うことは、アクション/コントローラーに引き継ぐことはできません。

于 2012-07-20T08:40:28.527 に答える