我正在开发一个ASP.NET MVC应用程序。我是ASP.NET MVC的新手。我目前正在保存数据。因此,如果记录已经存在,我需要预先填充一个表单。我的控制器目前看起来如下:
public ActionResult Edit(int productId)
{
Product product = Product.FindById(productId);
return View();
}我对这一行动的看法如下:
<div class="row">
<div class="col-md-6">
<h3>Product</h3>
<div class="form-group">
<label class="control-label" for="productName">Product Name</label>
<input type="text" class="form-control" id="productName" name="productName" />
</div>
</div>
</div>我不想使用内置的HTML助手.但是,我正试图弄清楚如何将product.Name的值输入名为productName的文本框中。在不使用HTML助手的情况下,如何在MVC中做到这一点?
谢谢!
发布于 2014-09-30 13:32:57
我会将产品传递给View,以便视图能够实际显示产品详细信息:
public ActionResult Edit(int productId)
{
Product product = Product.FindById(productId);
return View(product);
}然后在视图中有这样的东西:
@model Product
<div class="row">
<div class="col-md-6">
<h3>Product</h3>
<div class="form-group">
<label class="control-label" for="productName">Product Name</label>
<input type="text" class="form-control" id="productName" name="productName" value="@Model.Name" />
</div>
</div>
</div>发布于 2014-09-30 13:33:43
您需要将Product转换到视图中。因此,您需要一个ViewModel,它可以带走您的产品。然后,您的视图需要知道它将得到哪个ViewModel。
修改后的控制器操作:
public ActionResult Edit(int productId)
{
Product product = Product.FindById(productId);
EditViewModel viewModel = new EditViewModel( );
viewModel.Product = product;
return View( viewModel );
}您的(可能已经存在) ViewModel:
public class EditViewModel
{
public Product Product { get; set; }
}修改后的观点:
@model Your.Namespace.EditViewModel
<div class="row">
<div class="col-md-6">
<h3>Product</h3>
<div class="form-group">
<label class="control-label" for="productName">Product Name</label>
<input type="text" value="@(Model.Product.Name)" class="form-control" id="productName" name="productName" />
</div>
</div>
</div>https://stackoverflow.com/questions/26121855
复制相似问题