0
蔭Asp.net網絡表單開發和正在努力學習.NET MVC 5. 我知道該怎麼做,只有靜態的HTML標籤的局部視圖在MVC 5如何在mvc 5發佈數據獲取部分視圖?
但我可以在一個MVC局部視圖也有形式與文本框和提交buttion?
如果是,那麼我在哪裏寫回發函數的這部分視圖獲取其發佈的值,在哪個控制器?
蔭Asp.net網絡表單開發和正在努力學習.NET MVC 5. 我知道該怎麼做,只有靜態的HTML標籤的局部視圖在MVC 5如何在mvc 5發佈數據獲取部分視圖?
但我可以在一個MVC局部視圖也有形式與文本框和提交buttion?
如果是,那麼我在哪裏寫回發函數的這部分視圖獲取其發佈的值,在哪個控制器?
是的,您也可以在部分視圖中有文本框和提交按鈕。例如
例如,假設您有一個產品應用程序,並且您的主頁(View)正在顯示所有可用的產品。 所以爲了顯示你需要通過一個模型
@model IList<xyzRetailer.ViewModels.ProductViewModel>
@{
ViewData["Title"] = "Home Page";
}
的產品,你可以讀到這樣的價值:如果你想擁有AA局部視圖
<div class="col-md-3">
<h2>Product Categories</h2>
<ul>
@foreach (var item in Model.Select(a=>a.Category).Distinct())
{
<li>@item</li>
}
</ul>
</div>
我們您的問題與不同的視圖模型,你可以與元組或您可以創建一個新的對象,只是爲了部分視圖,而像下面這樣調用它:
@Html.Partial("_AddProduct", new yzRetailer.ViewModels.ProductViewModel())
,你的部分觀點將類似下面:
@model xyzRetailer.ViewModels.ProductViewModel
@using (Html.BeginForm("Create", "Home", FormMethod.Post))
{
<div class="input-group">
@Html.TextBoxFor(model => model.Id, new { @class = "hidden" })
@Html.TextBoxFor(model => model.Category, new { @class = "form-control" })
</div><input type="submit" value="Save" class="btn btn-primary btn-block" />
}
而控制器代碼應該首頁 - >創建您在@ Html.BeginForm提到。
public async Task<IActionResult> Create(ProductViewModel product)
{
if (!ModelState.IsValid)
{
return this.BadRequest(ModelState);
}
if (string.IsNullOrEmpty(product.Id))
{
var result = await _catelogueManager.AddAsync(product);
}
else
{
var result = await _catelogueManager.UpdateAsync(product.Id, product);
}
var products = await _catelogueManager.GetAllAsync();
return View("Index", products);
}
我想你應該使用編輯器模板來代替。這可以將您的模型的一部分,併爲他們分配值。具有表單值的編輯器將最終放入html中的客戶端。表單發佈後,所有名稱值對都將被髮送,並且如果服務器Action上有相應的名稱(模型參數),則它們將被綁定。換句話說,您將有權訪問該主頁控制器的控制器操作中的編輯器模板值。 –