ASP.NET MVC开发,编辑页面和添加页面基本相同,我们控制器 Add Edit是共用同一个View吗?
如题,说下你们的看法,给点经验,谢谢
这种的话,一般公用就好了。,如下的写法:
[HttpGet] public ActionResult UserManage(int userId=0) { if (userId==0) { return ActionResult(new UserInfo()); } else { ViewBag.IsEdit = true; return ActionResult(GetUserInfo(userId)); } } [HttpPost] public ActionResult UserManage(UserInfo model,bool isEdit) { if (isEdit) { do something... }else { do something... } }
不错,和我现在弄的差不多,也是传真来判断,如果编辑和添加 页面区别很大应该就自己权衡了吧!
@xu_happy_you: 区别很大,没必要和在一起了。这种,可以用Ajax分部视图,代码非常少。
@幻天芒: controller也共用吗?
@Invictus: 对呀,一个Controller就足够了啊~
可以共用一个页面。
添加和编辑的区别是:添加的时候,页面内是没数据的;编辑的时候,页面内是有数据的,可以共用一个页面。可以先从View向Controller传递数据,要执行添加操作的时候传递空数据。数据传递到Controller之后判断传递过来的数据,如果数据是空就将页面中数据的位置显示为空,如果不为空就将数据显示到页面中。
我这边是共用一个页面,因为数据是Ajax加载 所以js里区分新增还是编辑
public ActionResult UserManage(UserInfo model,bool isEdit)
在cshtml页面是怎么传参的?
留给需要的人:
cshtml添加一个隐藏元素
<input type="hidden" name="isEdit" value="@ViewBag.isEdit" />
后台可以这样接收,
Request.Form["isEdit"];