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上有相应的名称(模型参数),则它们将被绑定。换句话说,您将有权访问该主页控制器的控制器操作中的编辑器模板值。 –