我正在使用C#和MVC處理Web應用程序項目,它將採用表單中的兩個URL並使用它們來創建我創建的名爲「ImageSwap」的類的實例。這個模型有一些數據(執行交換的人的用戶名;兩個變量保存要交換的兩個圖像的URL;兩個變量保存這些文件的實際名稱,而沒有剩餘的URL信息;以及兩個表示檢查這些文件的文件位置的數組)。現在,我有這樣初始索引視圖創建類的實例並將其傳遞給中放置了通過表格的信息,通過POST提交的,像這樣相同的看法:在MVC中的視圖之間傳遞數據
public ActionResult Index()
{
Ops.Operations.Models.ImageSwapModel newImageSwap = new Models.ImageSwapModel();
return View(newImageSwap);
}
[HttpPost]
public ActionResult Index(ImageSwapModel imageSwap)
{
var oldFileFound = false;
var newFileFound = false;
if (ModelState.IsValid)
{
//Perform data manipulation and set needed values
}
}
然後它對數據執行一些功能,比如解析出URL末尾的文件名,以及一個目錄號(這是該文件名的第一部分,即目錄#_fileName.jpg)。所有這些工作正常。
我的問題是,我想通過這個模型傳遞給另一個視圖,一旦它的所有字段中有數據填充了這個初始的ActionResult,這樣我就可以擁有一個驗證視圖,這將允許用戶預覽兩個並排文件,以便他們可以確保他們交換適當的圖像。然後,他們應該能夠擊中另一個提交按鈕,這將啓動實際移動/替換圖像並被帶到頁面確認。
有沒有辦法將數據從這個控制器傳遞到不同的視圖?我的困惑產生了,因爲我無法用相同的輸入創建索引的ActionResult的另一個版本,但我不想在沒有預覽和提示的情況下實際交換圖像。我是否應該重新編寫索引視圖,以便它利用部分視圖來完成此操作?通過多個步驟和視圖持續保存數據的最簡單方法是什麼?
你可以使用會話,數據庫,查詢字符串參數在任何圖層之間傳遞數據。 – semirturgay
經過簡短的研究,看起來好像會話是最合理的方式。由於存儲在類中的許多信息很容易從其他變量中派生出來,所以我不打算在數據庫中將所有信息都放入數據庫中。查詢字符串參數需要在URL中傳遞太多數據。這些假設是否正確?如你所說, – ianodork
會議將是最適合你的情況... – semirturgay