[英]Using variable in multiple partial Views
我的應用程序允許用戶訂購耗材。 我正在使用在一個索引視圖上呈現的多個局部視圖。 部分視圖細分為訂單的標題信息,表單訂購和供應訂購。
在索引控制器中,我為每個訂單創建一個唯一的“ TransNum”。
Guid guid = Guid.NewGuid();
string str = guid.ToString();
ViewBag.TransNum = str;
我將使用“ TransNum”將訂購的實際耗材和表格與用戶的標題信息聯系起來。
目前,我在索引視圖中顯示當前的TransNum,但是我還需要在我的addupplies視圖中使用它,並且
<!-- Begin RequisitionNumber-->
<div class="form-group">
@Html.Label("RequisitionNumber:", new { @class = "form-control" })
@Html.TextBox("RequisitionNumber", null, new { @class = "form-control", Value = ViewBag.TransNum, @readonly = "readonly" })
</div>
<!-- Add partial Views-->
@{Html.RenderAction("DataGrid");}
@{Html.RenderAction("AddSupplies");}
@{Html.RenderAction("AddForms");}
有沒有一種簡單的方法可以將(Viewbag.TransNum)傳遞到Index視圖以及三個局部視圖(DataGrid,AddSupplies和AddForms)?
我一直在網上進行研究,並且自己看到了一些東西。 我嘗試了以下方法:
@{Html.RenderAction("AddSupplies", new { ViewBag.TransNum });}
但是我仍然無法在局部視圖上獲取ViewBag.TransNum。
如果需要,我也可以提供控制器代碼。
我已經通過使用TempData解決了我的問題,它使我可以在索引控制器上存儲唯一的事務號,並將其傳遞給需要它的其他控制器。 這是一個示例:
{
//Auto Generate Requisition Number
Guid guid = Guid.NewGuid();
string str = guid.ToString();
ViewBag.TransNum = str;
TempData["ReqNo"] = str;
return View();
}
在上面,我創建了自己的唯一ID,並將其作為ReqNo存儲在TempData中。
在下面,我可以在另一個控制器中很容易地調用該變量。
public ActionResult AddSupplies()
{
var q = db.ICS_Orders;
var z = db.ICS_Indexs.ToList();
ViewBag.TransNum = TempData["ReqNo"];
return View(q);
}
可能還有其他和/或更好的方法來完成此任務。 但是,這為我完成了工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.