首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ASP.NET MVC中更新数据后更新视图

在ASP.NET MVC中更新数据后更新视图
EN

Stack Overflow用户
提问于 2014-09-30 13:17:09
回答 2查看 1.7K关注 0票数 1

我正在开发一个ASP.NET MVC应用程序。我是ASP.NET MVC的新手。我目前正在保存数据。因此,如果记录已经存在,我需要预先填充一个表单。我的控制器目前看起来如下:

代码语言:javascript
运行
复制
public ActionResult Edit(int productId) 
{
  Product product = Product.FindById(productId);

  return View();
}

我对这一行动的看法如下:

代码语言:javascript
运行
复制
<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中做到这一点?

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-09-30 13:32:57

我会将产品传递给View,以便视图能够实际显示产品详细信息:

代码语言:javascript
运行
复制
public ActionResult Edit(int productId) 
{
  Product product = Product.FindById(productId);

  return View(product);
}

然后在视图中有这样的东西:

代码语言:javascript
运行
复制
@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>
票数 1
EN

Stack Overflow用户

发布于 2014-09-30 13:33:43

您需要将Product转换到视图中。因此,您需要一个ViewModel,它可以带走您的产品。然后,您的视图需要知道它将得到哪个ViewModel。

修改后的控制器操作:

代码语言:javascript
运行
复制
public ActionResult Edit(int productId) 
{
    Product product = Product.FindById(productId);

    EditViewModel viewModel = new EditViewModel( );
    viewModel.Product = product;

    return View( viewModel );
}

您的(可能已经存在) ViewModel:

代码语言:javascript
运行
复制
public class EditViewModel
{
    public Product Product { get; set; }
}

修改后的观点:

代码语言:javascript
运行
复制
@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>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26121855

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档