首頁>Program>source

我想在RedirectToAction中傳遞物件.這是我的代碼:

RouteValueDictionary dict = new RouteValueDictionary();
            dict.Add("searchJob", searchJob);
            return RedirectToAction("SearchJob", "SearchJob", dict);

其中searchJob是SearchJob的例項.但是我没有關於SearchJob操作方法的資料.相反,我得到searchJob = Entity.SearchJob的查詢字元串.請帮我.我在做什麼錯了?

最新回復
  • 3月前
    1 #

    您不能將類傳遞给這樣的重定向操作.重定向是通過URL进行的. URL是一个字元串,因此不能包含類(在這裏將物件序列化為url確實不合邏輯

    相反,您可以使用 TempData

    TempData["searchJob"] = searchJob;
    return RedirectToAction ...;
    

    並在操作中被重定向

    Entity.SearchJob = (Entity.SearchJob)TempData["searchJob"] ;
    

    執行完以上代碼後,TempData將不再包含searchJob. TempData通常用於單次讀取。

    但是我不類似上面的方式.如果我在您的位置並想按名稱搜尋职位,我会添加诸如

    這樣的路線引數
    RouteValueDictionary dict = new RouteValueDictionary();
    dict.Add("searchJobName", searchJob.JobName);
    

    並通過引數將其接收並生效

    public ActionResult SearchJob(string searchJobName)
    {
    ... do something with the name
    }
    

    這樣,您可以获得更好的使用者和HTTP友好URL,並且从Action的角度来看,它將从外部获取所需的所有引數.

  • 3月前
    2 #

    您可以尝試:

    return RedirectToAction("SearchJob", "SearchJob", new RouteValueDictionary(searchJob)
    

    通過 searchJob 进入 RouteValueDictionary 構造函式將分解 searchJob 反對並傳遞 SearchJob的每个屬性 類作為頂級路由值。

    使用預設模型聯程式設計序,將操作定義為:

    public ActionResult SearchJob(SearchJob searchJob)
    

    会收到完全補水的 SearchJob

  • 3月前
    3 #

    您不能將類傳遞给RedirectToAction方法,如果要通過查詢字元串或通過POST傳遞整个物件,則可以使用XML或JSON序列化物件,並在接收器控製器中反序列化物件. 如果您使用這種方法来註意序列化物件的大小。

  • 3月前
    4 #

    尝試使用跨頁發佈,您可以確定Prevoiuse頁面型別,並使用它作為物件.

  • Java Runtimeexec()
  • javascript:如何檢測頁面上已訪問和未訪問的鏈接?