首页
学习
活动
专区
圈层
工具
发布

MVVM(Knockout.js)的新尝试:多个Page,一个ViewModel

以通过KO实现的MVVM为例,其核心是“绑定”,我个人又将其分为两类,即“数据的绑定”和“行为的绑定”。...三、共享的ViewModel 那么现在我们希望定义一个公用的“类型”来作为这种页面的ViewModel,并且将相应的数据和行为操作定义其中。...如下所示的就是这个ViewModel的定义,由于我为每个成员加上了注释,所以每个成员的作用和实现逻辑还是比较清晰的,在这里我就不一一解释了。...该方法返回一个JSON对象,其Data属性返回具体的数据(针对指定的页码),而用于客户端重置页码的TotalPages属性表示总页数,在这里每页记录数设置为2。...两个方法呈现的都是一个名为ContactPartial的分部View,从如下定义可以看出这是一个Model类型为Contact的强类型View,Contact对象以编辑模式呈现在一个以Ajax方式提交的表单中

3.2K100

利用动态注入HTML的方式来设计复杂页面

对于这种复杂的页面,我们在设计的时候不可以真的将所有涉及的元素通通至于某个单独的View中,将复杂页面相对独立的内容“分而治之”才是设计之道。...我们可以借鉴Smart Clent应用的设计方式:将一个Windows Form作为应用的容器(Smart Client Shell),在操作过程中动态地激活相应的用户控件(Smart Part)并加载到容器中...方式提交的表单,目标Action为具有如下定义的Find,它根据指定的First Name和Last Name筛选匹配的联系人列表,并将其呈现在一个名为ContactListPartial的View中。...的强类型View,它以表格的形式将联系人列表呈现出来。...以一个链接的方式呈现出来,点击该链接会以Ajax的方式访问Action方法Update,当前联系人ID会作为请求的参数(@Ajax.ActionLink(contact.Id, "Update"

4.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    ajax怎么解决报414,关于c#:HTTP错误414。请求URL太长。 asp.net

    从下面的文章中,我了解到这是由于查询字符串很长所致: 在web.config中,我有maxQueryStringLength=”2097151″。 这是最大值吗?...为了解决此问题,我应该在web.config中设置maxUrl吗? 如果是这样,支持的最大值是多少? 我该怎么办才能解决此错误? 是否可以将URL中的某些长字符串替换为整数或Guid?...为此,您应该考虑一个数据库表并存储所有详细信息参数,并仅将行的ID(主键)反映给用户以添加书签。...此外,您应该设计一个页面来处理和解析捕获的ID(来自request.QueryString)…希望此解决方案能够解决您的问题 @Midhun:-或您可以做的其他事情是-制作一个只包含get的类; 并设置...只是为了补充,如果您尝试使用大量参数,请使用Request ajax并接收414错误。将dataType属性更改为JSON,然后以POST类型提交。 这解决了我的问题。

    2K10

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(22)-权限管理系统-模块导航制作

    easyui的datagrid,系统是jqgrid 这里用到权限控制了,所以你必须为SysModule添加增加,删除,修改等权限,并为admin用户授权,添加权限跳转到第十八讲 (必须非常熟练这一步,多用手动插入数据...:" + info.Id + ",Name:" + info.Name + "," + ErrorCol, "失败", "创建", "模块设置"); return...:" + id + "," + ErrorCol, "失败", "删除", "模块设置"); return Json(JsonHandler.CreateMessage...{ LogHandler.WriteServiceLog(GetUserId(), "Id:" + id, "成功", "删除", "模块设置KeyCode");...本节演示了Easyui制作菜单,即无限级别树的做法,以及DataGrid之间的联动,我也是和大家一起学习,我也是Easyui的新手,如有不足,请大家见谅

    5.5K80

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(43)-工作流设计-字段分类设计

    先建立,就知道表的关系和用处了,当然,我的设计只是一个参考,你可能有很多改进的地方。 我们的工作流具体细节流程是这样的: 最终我们的模块也是这样的,最后理想也是这样的。现在从表单设计入手一步一步来。...}", // 带有参数的 URL new { lang = "zh", controller = "Home", action = "Index", id = UrlParameter.Optional...{ $("#btnSave").click(function () { if ($("form").valid()) { $.ajax...添加请假用的字段 其中的校验脚本,我这里是具体的JS代码,有时间的可以写好,让用户来导入即可。...这样才是人性化的选择,比如让用户判断是否为空,然后根据用户的选择来导入js代码 INSERT INTO [Flow_FormAttr] ([Id],[Title],[Name],[AttrType],[

    1.2K80

    构建ASP.NET MVC4+EF5+EasyUI+Unity2.x注入的后台管理系统(9)-MVC与EasyUI结合增删改查

    这讲主要是,制作漂亮的工具栏,虽然easyui的datagrid已经自带可以设置工具栏,我们还是要提取出来,为以后权限控制做更好的准备。 先看一张界面调整后的效果图 ?...关于$.messageBox5s是我扩展easyui的message控件的结果,扩展如下 /** * 在iframe中调用,在父窗口中出提示框(herf方式不用调父窗口) */ $.extend({...javascript"> $(function () { $("#btnSave").click(function () { $.ajax...): @Html.EditorFor...总结 修改就把创建复制一份,保存的时候把url指到修改 详细就把保存去掉就可以了 查询,在Controller的GetList增加一个queryStr参数,在BLL判断是queryStr是否为空。

    2.1K70

    ASP.NET MVC5+EF6+EasyUI 后台管理系统(44)-工作流设计-设计表单

    我总共是设置最高26个字段从A~Z如果超过26个字段的表单是属于硬编码的。...但是我认为26个字段已经足够 因为这里我是单表模式比起表关联无限字段理论上性能会更加快,特别是当数据库申请带到千万级数据的时候(你自己可以设计更加灵活的表单管理) Flow_Form的A~Z对应的是Flow_FlowAttr...这个表设计也有缺陷,我把内容全部设置为varchar(2048)字段太大,可以根据自己的扩展来确定内容是最佳的方式,比如A-F是大字段,G-L设置的是中级长度的字段,M-O是数字的字段等等 准备开始 1...; $("#btnSave").click(function () { if ($("form").valid()) { $.ajax...combogrid为空 $('#formAttrComboGrid').combogrid('setValue', ''); } function deleteCurrentTR

    2.3K70

    ASP.NET MVC的Model元数据与Model模板:预定义模板

    我们可以看到表示是否为兼职的IsPartTime属性对应着一个CheckBox。 ? 现在我们希望的是将所有布尔类型对象显示为两个RadioButton,具体的显示效果如下图所示。...美中不足的是它们具有相同的ID,如果希望让ID具有唯一性,可以对模板进行更加细致的定制。...同样以上面定义的数据类型Model为例,我们通过在Foo属性上应用UIHintAttribute特性将模板名称设置为“HiddenInput”。...对于某个表示为Url的字符串,如果我们希望它最终以一个连接的方式呈现在最终生成的HTML中,我们采用该模板。...如下面的代码片断所示,我们在Model的Foo属性上应用UIHintAttribute特性将模式名称设置为“Password”。

    6.3K110

    MVC3教程之实体模型和EF CodeFirst

    name属性设置为“BookDbContext”,这个连接会被BookDbContext类使用,并根据连接创建相应的数据库。...,将控制器的名称修改为“BookController”,基架选择中的模板选择“空控制器”,如下图: ?   ...在完成数据读取后,将数据转换为实体对象集合。EF对数据库的操作大致如此。   ...7.设置实体模型的数据验证   在ASP.NET MVC中,有一条作为核心的原则,就是DRY(“Don’t Repeat Yourself,中文意思为:不要让开发者重复做同样的事情,即“一处定义、处处可用...这是一个简单的验证设置,通过设置验证,EF还会在生成的数据库中添加验证信息,例如是否为空、字符串长度等,如果要了解更多EF的功能,请看我的另一篇随笔:Entity Framework 4.1 Code-First

    2K20

    带你认识 flask ajax 异步请求

    当提供翻译链接并且用户点击它时,我需要将Ajax请求发送到服务器,服务器将联系第三方翻译API。一旦服务器发送了带有翻译文本的响应,客户端JavaScript代码将动态地将该文本插入到页面中。...我将采用约定,将任何将把语言设置为空字符串的帖子假定为未知语言 04 展示一个 ‘翻译’链接 第二步很简单。...如果状态码是200,那么响应的主体就有一个带有翻译的JSON编码字符串,所以我需要做的就是使用Python标准库中的json.loads()函数将JSON解码为我可以使用的Python字符串。...06 来自服务器的 Ajax 我将从实现服务器端部分开始。当用户单击动态下方显示的翻译链接时,将向服务器发出异步HTTP请求。...例如,如果客户希望将字符串“Hello,World!”翻译成西班牙语,则来自该请求的响应将具有以下有效载荷: { "text": "Hola, Mundo!"

    5.3K20

    在 JS 中如何使用 Ajax 来进行请求

    在本教程中,我们将学习如何使用 JS 进行AJAX调用。 1.AJAX 术语AJAX 表示 异步的 JavaScript 和 XML。 AJAX 在 JS 中用于发出异步网络请求来获取资源。...我们需要另外使用setRequestHeader设置请求标头“Content-Type” ,并使用send方法中的JSON.stringify将JSON正文作为字符串发送。...如果来自服务器的响应带有任何状态码(如200、404、500),则promise将被解析。响应对象可以在.then()块中处理。...错误处理 请注意,对于成功的响应,我们期望状态代码为200(正常状态),但是即使响应带有错误状态代码(例如404(未找到资源)和500(内部服务器错误)),fetch() API 的状态也是 resolved...我个人更喜欢使用Axios API而不是fetch() API,原因如下: 为GET 请求提供 axios.get(),为 POST 请求提供 axios.post()等提供不同的方法,这样使我们的代码更简洁

    12.5K20

    使用AJAX获取Django后端数据

    根据Django项目的URLconf和视图的配置方式,URL可能包含关键字参数或查询字符串,我们希望在视图中使用该参数来选择请求的数据。 Headers 设置AJAX请求头参数。...我们希望数据以JSON形式从视图返回,因此我们将Accept参数设置为application/json。在视图中,我们可能要确保该请求是AJAX请求。...通过将设置为“XMLHttpRequest”的“X-Requested-With”标头包括在内,该视图将能够检查请求是否为AJAX。 get不会直接返回数据。...在视图中处理GET请求 我们需要一个视图来处理来自fetch调用的AJAX请求。...一旦获得了请求中的数据,我们就可以执行用户希望启动AJAX请求的操作。这可能是创建模型的新实例或更新现有实例。 与GET请求一样,可以使用JsonResponse和带有数据的字典将数据发送回页面。

    10.1K40
    领券