簡體   English   中英

在多個局部視圖中使用變量

[英]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.

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