簡體   English   中英

MVC5自動拆分IEnumerable <primitive> 參數

[英]MVC5 automatically split IEnumerable<primitive> Parameters

假設我有一個帶有以下簽名的動作:

public ActionResult SomeAction(IEnumerable<string> myList){ .. }

和另一個動作:

public ActionResult AnotherAction() {
    var myListEntries = LoadFromSomewhere().ToList<string>();

    return RedirectToAction("SomeAction", new { myList = String.Join(";", MyListEntries) });
}

有什么方法可以告訴第一個操作,它必須對傳入的值應用分隔符? 還是我必須使用TempData []或(在HTML中)多個輸入字段?

所以打電話

return RedirectToAction("SomeAction", new { myList = myListEntries });

不起作用,因為結果是您的操作將收到一個包含一個條目的列表,其中包含您將從myList.ToString()獲得的內容, myList.ToString()內容僅返回類型名稱,這是非常無用的。

因此,正如您已經猜到的那樣,您必須插入某種字符串表示形式,MVC可以將其自動轉換回列表對象。 要接收此消息,您不應使用String.Join() ,但可以嘗試JSON:

return RedirectToAction("SomeAction", new { myList = JsonConvert.SerializeObject(myList) });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM