mvc部分视图提交的问题

yegucheng 2018-07-17 02:36:01
现在有个界面,客户信息其中有基本信息、股东信息、公告信息等。
我现在是一次查询把所有的信息都查询出来,然后多tab显示在基本信息、股东信息、公告信息这样的。
现在需要修改基本信息内容,我想是基本信息提交上去,只是基本信息修改,整个页面不刷新。不想用ajax,因为栏目太多,写起来累,想用mvc实体类绑定,请问有什么好的解决办法吗?
...全文
211 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
当你“怕累,想用mvc实体类绑定”的时候,对于宣传性网站上的极个别功能才能这样使用。那么此时用使用 IFrame 也是一个很自然的选择。毕竟独立的页面可以支持比较复杂的交互过程设计,而你使用一个“局部页”的时候可能其接口和设计模式不能很好地支持复杂交互过程视图。

引用 1 楼 yegucheng 的回复:
还请教一个问题,这个mvc实体类的绑定,是根据页面什么绑定的呢,控件的id,还是name,还是其他来映射到对应的实体类呢


是根据 <form></form> 对象,直接绑定相关的 action 提交(submit)动作,拦截它不让浏览器刷新,而是改为使用 ajax 方式来访问 controller。
  • 打赏
  • 举报
回复
前端 web 应用程序,那么 UI 编程在前端。当你用 asp.net mvc 来帮i的那个 html 的时候,你能将一个页面划分为几十万个 controller 吗?不能!这种 web 服务器端编程架构从“根上”就不是富客户端编程的路子,那么也就得不到效果。

另外,比如说我们的前端应用,使用 IIS 只是为了网站部署而已,前端应用通过 websocket 方式跟 windows 服务器程序通讯,使用 tcp 通讯。所以程序整体的效率自然是甩那些 ajax 之类有10倍的了。
  • 打赏
  • 举报
回复
看来你还从未学过纯粹 web 前端框架开发,满脑子只有服务器端 web 页面编程概念。这就好像是操作 excel 进行大公司核算,每当录入一个单元格的时候都应该影响到其它几十个单元格的瞬间改变——包括自动取得其它业务表格的上月上年等时间段的统计信息,这些改变是瞬间的并且立刻给出反馈甚至数据警报,才满足用户交互操作需求。

那么你使用的服务器端编程方案,其实就是相当于用户每当填写一个 excel 格子之后,立刻你就把 Excel 关闭了,然后重新送到远程创建一个新的 Excel,然后立刻重新打开新的 Excel 文件,然后让用户继续找到原来的单元格去填写.........

这种 asp.net mvc “局部页”其实是个鸡肋,也就是适合简单的宣传性的网站。你应该学习纯粹的 web 前端技术,前端技术的概念是一个 html 为应用程序,前端操控 html 的 dom element,前端只跟服务器进行数据功能交互,而并不用服务器去产生什么 html 一遍遍刷新到前端。这样的开发者脑子里设计的 web 应用就跟 winform、wpf 一样是一个稳定地把窗体中的控件分成数十万个子控件而自动化刷新的应用程序,而不是一遍遍刷新整个窗体(或者几个号称为 Tab 的子窗体)的应用程序。
yegucheng 2018-07-18
  • 打赏
  • 举报
回复
我还需要考虑跟手机浏览,手机pc共一套,websocket 可能不行。

按您的意思mvc其实不如html好使,我是不是考虑项目中完全采用html,而不需要考虑mvc?
mirrorspace 2018-07-17
  • 打赏
  • 举报
回复
不用AJAX又要局部刷新,可用IFRAME
但这种情况自然是要使用AJAX的,写起来并不麻烦啊
圣殿骑士18 2018-07-17
  • 打赏
  • 举报
回复
ajax加载并不如你想的那样,一定需要一个个字段更新。实际上是可以整体替换的。比如按如下的方式,可以remove掉某个节点后,使用ajax重新载入部分视图。
yegucheng 2018-07-17
  • 打赏
  • 举报
回复
我想这应该是局部视图刷新的问题,难道除了ajax,就没有别的办法刷新局部视图?
正怒月神 版主 2018-07-17
  • 打赏
  • 举报
回复
1 这个mvc实体类的绑定,是根据页面什么绑定的呢,控件的id,还是name
根据name绑定的。

2 我想是基本信息提交上去,只是基本信息修改,整个页面不刷新。不想用ajax,因为栏目太多,写起来累,想用mvc实体类绑定,请问有什么好的解决办法吗?

不用ajax,貌似没办法,因为mvc的机制,就是刷新页面的。
  • 打赏
  • 举报
回复
  • 打赏
  • 举报
回复
提交更改的时候,你 Update 方法里面,肯定要先根据id来查询 模型,然后传递需要修改的值进去, 修改对应的字段就是,不修改的字段就不重新赋值,也就不会更改了。
你可以采用mvc的局部视图,可以用form,后台 用 form...来读取参数
例如(不用管我里面是怎么查询数据的)

public JsonResult Update(FormCollection fc, Company model)
{
var result = new AjaxResult();
try
{
var entity = CompanyRepository.Get(d => d.Id == model.Id);
ThrowsIfNull(entity);
Work.BeginTransaction();

entity.ParentId = model.ParentId;
entity.CategoryCode = model.CategoryCode;
entity.LevelCode = model.LevelCode;
entity.Title = model.Title;
entity.Code = model.Code;
entity.Contactor = model.Contactor;
yegucheng 2018-07-17
  • 打赏
  • 举报
回复
还请教一个问题,这个mvc实体类的绑定,是根据页面什么绑定的呢,控件的id,还是name,还是其他来映射到对应的实体类呢

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧