gpt4 book ai didi

c# - 使用 ASP.NET MVC,如何最好地避免同时编写添加 View 和编辑 View ?

转载 作者:可可西里 更新时间:2023-11-01 08:09:56 25 4
gpt4 key购买 nike

Add View 和 Edit View 通常非常相似,因此没有必要编写 2 个 View 。随着应用的发展,您将对两者进行相同的更改。

但是,通常会有细微的差别。例如,一个字段在添加后可能是只读的,如果该字段是 DropDownList,则您不再需要 ViewData 中的该列表。

那么,我是否应该创建一个 View 数据类,其中包含两个 View 的所有信息,其中,根据您正在执行的操作,某些属性将为空?
我应该将操作作为枚举包含在 View 数据中吗?
我是否应该用 <% if( ViewData.Model.Op == Ops.Editing ) { %> 包围所有细微差别?

或者有更好的方法吗?

最佳答案

这真的很容易。假设您正在编辑博客文章。

这是您用于新建/编辑的 2 个操作:

public class BlogController : Controller
{
public ActionResult New()
{
var post = new Post();
return View("Edit", post);
}

public ActionResult Edit(int id)
{
var post = _repository.Get(id);
return View(post);
}

....

}

这是 View :

<% using(Html.Form("save")) { %>
<%= Html.Hidden("Id") %>

<label for="Title">Title</label>
<%= Html.TextBox("Title") %>

<label for="Body">Body</label>
<%= Html.TextArea("Body") %>

<%= Html.Submit("Submit") %>
<% } %>

这是 View 提交到的保存操作:

public ActionResult Save(int id, string title, string body)
{
var post = id == 0 ? new Post() : _repository.Get(id);
post.Title = title;
post.Body = body;

_repository.Save(post);

return RedirectToAction("list");
}

关于c# - 使用 ASP.NET MVC,如何最好地避免同时编写添加 View 和编辑 View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com