我有以下的看法,主要查看的項目列表作爲displayfor: -路過DisplayFor的值,以模型綁定
@foreach (var item in Model.Resources) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.SystemInfo.MODEL)
</td>
<td>
@Html.DisplayFor(modelItem => item.RESOURCENAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.ResourceLocation.SiteDefinition.AccountDefinition.SDOrganization.NAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.ResourceLocation.SiteDefinition.SDOrganization.NAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.ComponentDefinition.COMPONENTNAME)
</td>
<td>
@Html.DisplayFor(modelItem => item.ResourceState.STATEDESC)
</td>
<td id = "@item.RESOURCEID">
@using (Ajax.BeginForm("CreateOn","VirtualMachine", new AjaxOptions {
InsertionMode = InsertionMode.Replace,
UpdateTargetId = item.RESOURCEID.ToString() ,
LoadingElementId = "progress",
HttpMethod = "POST"})){
<span class="f">Hypervisor Server</span>
@Html.DropDownListFor(model =>model.VirtualMachine.ServerID, ((IEnumerable<t.Models.Server>)ViewBag.Servers).Select(option => new SelectListItem {
Text = (option == null ? "None" : option.Technology.Tag),
Value = option.ServerID.ToString(),
Selected = (Model != null) && (Model.VirtualMachine != null) && (option.ServerID == Model.VirtualMachine.ServerID)
}), "Choose...")
@Html.ValidationMessageFor(model =>model.VirtualMachine.ServerID)
@Html.Hidden("IT360id", item.RESOURCEID)
@Html.Hidden("CustomerName",item.ResourceLocation.SiteDefinition.AccountDefinition.SDOrganization.NAME)
@Html.Hidden("SiteName",item.ResourceLocation.SiteDefinition.SDOrganization.NAME)
@Html.Hidden("ResourceName",item.RESOURCENAME)
<input type="submit" value="Add To" class="btn btn-primary"/>
}
但用戶可以讀取數據,並選擇創建我們的數據庫中的項目,使用ajax.beginform。但爲此,我需要將DisplayFor的某些值傳遞給模型聯編程序。目前,我添加了所有需要的數據作爲hiddenfields,然後我將這些值傳遞到我的操作方法如下: -
[HttpPost]
public ActionResult CreateOn(VirtualMachineOnIT360Only vm, long IT360id, string CustomerName, string SiteName, string ResourceName)
{
我發現,我的做法是不是很可靠,我想弄清楚更可靠的解決方案。那麼有誰能建議嗎? 感謝
它不是一個真正的好主意,創建一個窗體爲您的循環中的每個元素。這是真的嗎? – Hemadeus
爲什麼這不是一個好主意? –
沒關係你是對的,使用多種形式並不差。我不明白你最初想做什麼,所以我刪除了我的答案。我看到它的方式,沒有太多辦法可以做到。您仍然可以使用隱藏字段,或僅發送所選下拉列表的ID和所選資源的ID。並加載數據服務器端的其餘部分。但在你的情況下,如果數據不需要保證,我認爲隱藏域更好。 – Hemadeus