首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

通过表单提交时,Sitecore.Data.ID类型的模型绑定无法正常工作

是因为Sitecore.Data.ID是Sitecore CMS中用于表示唯一标识符的类型,而模型绑定是将表单数据绑定到模型属性上的过程。由于Sitecore.Data.ID是一个自定义类型,而模型绑定默认只支持基本数据类型的绑定,因此无法直接将表单数据绑定到Sitecore.Data.ID类型的属性上。

解决这个问题的方法是自定义模型绑定器,以支持Sitecore.Data.ID类型的绑定。可以通过实现ASP.NET MVC的IModelBinder接口来创建自定义模型绑定器。在自定义模型绑定器中,可以通过表单数据获取唯一标识符的字符串值,并使用Sitecore.Data.ID.Parse方法将其转换为Sitecore.Data.ID类型的对象,然后将其赋值给模型属性。

以下是一个示例的自定义模型绑定器的代码:

代码语言:txt
复制
using System;
using System.Web.Mvc;
using Sitecore.Data;

public class SitecoreIDModelBinder : IModelBinder
{
    public object BindModel(ControllerContext controllerContext, ModelBindingContext bindingContext)
    {
        var valueProviderResult = bindingContext.ValueProvider.GetValue(bindingContext.ModelName);
        if (valueProviderResult == null)
        {
            return null;
        }

        var idString = valueProviderResult.AttemptedValue;
        if (string.IsNullOrEmpty(idString))
        {
            return null;
        }

        try
        {
            return ID.Parse(idString);
        }
        catch (Exception)
        {
            throw new ArgumentException("Invalid Sitecore ID format");
        }
    }
}

然后,在Global.asax.cs文件中注册自定义模型绑定器:

代码语言:txt
复制
protected void Application_Start()
{
    // ...

    ModelBinders.Binders.Add(typeof(ID), new SitecoreIDModelBinder());

    // ...
}

通过以上步骤,就可以实现Sitecore.Data.ID类型的模型绑定正常工作了。

在Sitecore CMS中,Sitecore.Data.ID类型常用于表示项(Item)的唯一标识符。它可以用于获取、操作和管理Sitecore CMS中的内容项。Sitecore CMS是一款企业级的内容管理系统,提供了丰富的功能和灵活的扩展性,适用于构建各种类型的网站和应用程序。

推荐的腾讯云相关产品和产品介绍链接地址:

请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求和情况进行评估。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

django 1.8 官方文档翻译: 5-1-1 使用表单

Django 模型描述一个对象逻辑结构、行为以及展现给我们方式,与此类似,Form 类描述一个表单并决定它如何工作和展现。...表单字段本身也是类;它们管理表单数据并在表单提交进行验证。DateField 和FileField处理数据类型差别很大,必须完成不同事情。...当我们实例化表单,我们可以选择让它为空还是预先填充它,例如使用: 来自一个保存后模型实例数据(例如用于编辑管理表单) 我们从其它地方获得数据 从前面一个HTML 表单提交过来数据 最后一种情况最令人关注...现在我们有了一个可以工作网页表单,它通过Django Form 描述、通过视图处理并渲染成一个HTML 。 这是你入门所需要知道所有内容,但是表单框架为了提供了更多内容。...绑定和未绑定表单实例 绑定和未绑定表单 之间区别非常重要: 未绑定表单没有关联数据。当渲染给用户,它将为空或包含默认值。 绑定表单具有提交数据,因此可以用来检验数据是否合法。

4.2K20

.NET MVC第四章、模型绑定获取表单数据

.NET MVC第四章、模型绑定获取表单数据 ---- 目录 .NET MVC第四章、模型绑定获取表单数据 模型绑定概述 获取值demo 模型获取值 文件获取,必须使用post接收 可空int参数...文件上传 ---- 模型绑定概述 模型绑定就是将浏览器发送HTTP请求数据转换为.NET对象过程。...模型绑定使得在控制器中可以直接获取视图、或URL传递来数据,且这些数据可以自动转换为模型对象,以便调用。...模型绑定机制省略了常见Request.QueryString手动传值和类型转换步骤,这样可以专注地处理模型对象。...当文本框输入内容包含“非int类型”或“空数据”模型绑定器将无法正确实现int类型转换,默认绑定随之失效。为避免出现这类异常,需要为控制器相关参数设定“可空类型”或“参数默认值”。

1.2K20
  • AngularDart4.0 指南- 表单

    在开发表单,创建一个数据录入体验非常重要,该体验可以通过工作流高效地引导用户。...创建一个模型 当用户输入表单数据,您将捕获其更改并更新模型实例。 直到你知道模型是什么样子,你才能布置表格。 一个模型可以像“钱包”一样简单,掌握关于应用程序重要事实事实。...用ngSubmit提交表单 用户应该能够在填写表单提交这个表单表单底部Submit按钮本身不做任何事情,但是由于它类型(type =“submit”),它会触发一个表单提交。...提交标志变为真,表格消失。 您将看到表格中显示英雄模型值(只读)。 ? 该视图包含一个编辑按钮,其单击事件绑定将清除提交标志。 当您单击编辑按钮,该表消失,并且可编辑表单重新出现。...表单提交通过ngSubmit事件绑定处理。 模板引用变量,如heroForm和name。 双向数据绑定([(ngModel)])。 用于验证和表单元素更改跟踪NgControl 指令。

    17.5K30

    【ASP.NET Core 基础知识】--MVC框架--Views和Razor语法

    它与Model和Controller协同工作通过模型绑定从Controller获取数据,然后使用Razor语法或其他视图引擎将数据呈现为用户可见HTML。...这使得在控制器中处理请求,可以方便地使用和操作模型数据。 工作原理 模型绑定工作基本原理是通过将HTTP请求中数据(键值对)映射到应用程序中模型对象。...以下是一些常见技巧: 模型绑定前缀 在处理复杂数据结构(例如嵌套对象或集合),可以使用模型绑定前缀来指定数据应该绑定模型哪个属性。这在处理表单数组或嵌套对象非常有用。...,通过它们组合可以创建各种类型表单,用于接收用户输入并提交到服务器。...,返回登录页面,并显示错误信息 return View(model); } 模型验证 在表单提交模型验证会自动执行。

    44120

    【ASP.NET Core 基础知识】--MVC框架--Models和数据绑定

    在视图(View)中,可以通过@model指令声明绑定到视图模型类型。 Razor视图引擎通过模型对象属性进行输出数据绑定,将模型数据渲染到HTML中。...以下是一些视图中模型绑定基本概念和示例: 声明视图模型类型: 在视图中,通过使用 @model 指令声明视图将要绑定模型类型。...这样,当用户提交表单,框架会自动将表单数据绑定模型对象中。 4....return View(); } 通过自定义模型绑定器,你可以实现对特定类型高度定制绑定逻辑,从而更灵活地处理数据绑定场景。这在处理非标准数据类型、解析复杂格式或执行额外验证逻辑非常有用。...表单中使用 asp-for 和 asp-validation-for 辅助方法来生成输入字段和验证错误消息。这将与模型绑定器协同工作,确保表单数据正确地绑定到 Person 对象。

    59810

    《asp.net core 3 高级编程(第8版)》学习笔记 02

    在 HomeController 中添加两个方法,GET 请求用于默认 RSVP 表单展示,POST 请求用于将数据写到后台(真实应该是数据库)并且给提交者一个反馈(thanks 视图)。...RSVP 视图是一个表单,允许用户在填写后提交:图片注意 Highlight 地方,并不是 html 语法,而是微软 tag helper,为了能使用 tag helper 需要在项目中创建一个 view...理解模型绑定模型绑定是 asp.net core 一个强大特性,它允许使用 C# 对象而不是浏览器发送单个数据值,从而消除了直接处理 http 请求复杂性。...为了演示模型绑定,这里使用场景是:被邀请人在 rsvpform 视图中填写回复被记录下来,并反馈给被邀请人,被邀请人还可以查看有哪些人将参加 Party。...图片为观察模型绑定,在这里设置一个断点:图片图片模型绑定也可以将对象值传递给视图。

    1.2K10

    Django-form表单

    这时表单不再为空(未绑定),所以HTML 表单将用之前提交数据填充,然后可以根据要求编辑并改正它。...现在我们有了一个可以工作网页表单,它通过Django Form 描述、通过视图处理并渲染成一个HTML 。...绑定和未绑定表单 之间区别非常重要: 未绑定表单没有关联数据。...当渲染给用户,它将为空或包含默认值。 绑定表单具有提交数据,因此可以用来检验数据是否合法。如果渲染一个不合法绑定表单,它将包含内联错误信息,告诉用户如何纠正数据。...字段数据 不管表单提交是什么数据,一旦通过调用is_valid() 成功验证(is_valid() 返回True),验证后表单数据将位于form.cleaned_data 字典中。

    3.9K70

    第 14 篇:交流桥梁“评论功能”—— HelloDjango 系列教程

    如果通过表单提交数据存在错误,那么我们把错误信息返回给用户,并在前端重新渲染表单,要求用户根据错误信息修正表单中不符合格式数据,再重新提交。...method 指定提交表单 HTTP 请求类型,一般表单提交都是使用 POST。...因此,当用户访问别的网站,虽然攻击者可以拿到用户 cookie,但是无法取得证明身份令牌,因此发过来请求便不会被受理。...首先视图函数被 require_POST 装饰器装饰,从装饰器名字就可以看出,其作用是限制这个视图只能通过 POST 请求触发,因为创建评论需要用户通过表单提交数据,而提交表单通常都是限定为 POST...因为视图函数 comment 中表单实例是绑定了用户提交评论数据,以及对数据进行过合法性校验表单,因此当 django 渲染这个表单,会连带渲染用户已经填写表单数据以及数据不合法错误提示信息

    1.7K20

    双重保险——前端bootstrapValidator验证+后台MVC模型验证

    对于boostrapValidator我就不说了,具体请看《bootstrap登入注册表单验证实现》。...在前端cshtml页面中我们引用这个类,然后就是正常html结合bootstrap样式前端代码编写,但是在这里建议使用UserModel类中字段来命令标签id和name属性,如果乱取名,MVC...然后在action方法中使用: ModelState.IsValid 来做判断,如果不满足要求,MVC框架模型绑定会给我们将上面的值设置为false。接下来就是我们自己判断了。.....); $(form).submit(); //这两个不能同时使用,要不然不会提交表单到后台. }) bootstrapValidator插件与form.submit()事件冲突,不知道为什么就是验证完之后就是不能提交表单...同时在前端应该判断好bootstrapValidator是否验证通过再去提交表单。也就是说先判断bootstrapValidator.IsValid(),再去提交表单

    14210

    14个Spring MVC超实用技巧!

    此控制器处理请求URL模式在Spring上下文配置文件中定义如下: 但是,此方法缺点是控制器类无法处理多个请求URL。...你可以Map 在处理程序方法中声明类型参数 。Spring使用此映射存储模型对象。让我们看另一个例子: 这比使用ModelAndView 对象还要简单 。...10.处理表格提交和表格验证 通过提供@ModelAttribute 用于将表单字段绑定表单支持对象注解以及BindingResult 用于验证表单字段界面,Spring使处理表单提交变得容易。...@ModelAttribute 在方法上使用@ModelAttribute 接口绑定结果 11.处理文件上传 通过自动将上传数据绑定到CommonsMultipartFile 对象数组,Spring...例如, UserController 用于控制用户管理OrderController 工作流程, 用于控制订单处理工作流程等。

    1.1K10

    Vue自定义组件:解密v-model,轻松实现双向数据绑定

    v-model指令可以在表单 input、radio、select等表单元素上创建双向数据绑定它会根据控件类型自动选取正确方法来更新元素。...表单提交是开发中非常常见功能,也是和用户交互重要手段:比如用户在登录、注册需要提交账号密码;比如用户在检索、创建、更新信息,需要提交一些数据;这些都要求我们可以在代码逻辑中获取到用户提交数据,...绑定函数会被调用,将输入值与绑定属性进行双向绑定。 更新数据模型绑定函数会将输入值更新到数据模型中,以实现数据双向绑定。...通过以上步骤,v-model指令实现了将用户输入值与数据模型进行双向绑定,当用户输入内容,数据模型会自动更新;反之,当数据模型改变,输入框中值也会相应更新。...结语 通过本文学习,我们深入探索了如何通过自定义组件实现v-model双向数据绑定功能。我们了解了Vue双向绑定原理、v-model底层原理和它在表单元素上工作方式。

    84430

    Jenkins 版本更新历史

    v2.204.4 (2020-03-03) 传递某些类型(例如域通配符)证书,修复 Jetty 不支持包含多个证书密钥库错误(由 2.204.3 引入缺陷回归)。...为资源根 URL 添加一个选项,Jenkins 可以通过该选项为用户生成静态资源(例如工作空间文件或已归档制品)提供服务,而无需 Content-Security-Policy 标头。...还原在 Firefox Jenkins 经典 UI 中对表单提交更改(此更改导致了带有"文件"输入表单缺陷回归)。这样做是为了预料 Firefox 中错误修正,此错误已被撤消。...v2.190.3 (2019-11-20) 稳定性: 不允许用户使用 POST 在需要提交表单 URL 上重新提交请求,因为那样无论如何都会失败。...在 Firefox Jenkins 经典 UI 中还原表单提交更改。更改导致了带有"文件"格式内容提交表单缺陷回归。这样做是为了预料 Firefox 中错误修正,此错误已被撤消。

    3.5K30

    玩了下flask,很轻量级一个web开发框架

    ,7行代码就可以搞定了 入口文件可以设置很多参数 app.run(host,port,debug,options) *** 绑定路由方式有两种, *** 路由装饰器绑定 @app.route...(‘/’) 用add_url_rule来绑定函数 app.add_url_rule(‘/’,’hello’,hello_word) 第一个参数为路由根路由,第二个为子路由,第三个为所绑定函数...{{a}}| supper *** 如果在使用flash闪现消息时候出现了runtimeerror错误可以是应为没加secret_key,加上就好了,就可以正常使用flash了 这个是给flash...}} 直接调用到这个控件框 {{form.username.label}} # 调用上面的控件命名 挺简单, *** 数据库模型ORM映射 这里叫做flask_sqlalchemy ***...user.name=’newname’ 更改 每次对数据库操作都是要通过commit事务提交才能同步到数据库 ***

    1.1K30

    django入门:Admin管理系统及表单(干货)

    这一部分将介绍 django 自带后台管理系统,以及如何通过表单提交数据 django admin 后台管理系统 在后台管理系统注册创建模型 from django.contrib import admin...:8080/admin" 打开 admin 管理系统,登录账号密码就是我们第一部分通过命令行 createsuperuser所创建,登陆后我们可以找到站点管理,对模型进行管理操作 ?...admin 管理界面 为了可以和用户进行交流,我们需要获取用户一些评论之类,所以我们需要通过表单让用户提交信息,接下来我们将了解下 django 表单 django 表单 存在相应模型(POST...,根据模型字段类型来判断 if form.is_valid(): # commit=False 表示只生成模型实例,不马上保存到数据库...提交表单错误 不存在对应模型(POST 方式) 1.在 forms.py 中创建表单 # 假设有个信息反馈表单 class ContractForm(forms.Form): subject

    2.9K20

    建模与表单动态化设计

    例如对日期格式进行规定属性,对数值格式化属性,对字段提交到后端接口所要呈现结构或格式属性等等。...上面这张图中,假如我们有一个选项类型字段,意味着用户在填写表单,该字段要从选项中选择,而选项来源可以是我们自己创建,也可以通过选择一个数据源作为选项列表。...在此基础上,通过将输入组件与前文字段进行绑定,即可更快提供一种产品运转模式。...当然,更好方式是,当你准备绑定一个账户类型字段,系统提示“该字段为账户类型,需要使用账户组件进行选择,是否确定?”。通过自动切换来使得交互和字段逻辑一致。...布局比较容易理解,指令是只表单在遇到什么情况应该执行什么样动作,例如在提交需要进行校验,当出现某种情况要弹出一个警告框等等;引用主要是对相关资源引用,例如对模型引用、对数据源引用、对接口引用等等

    2.6K12

    SpringMVC扩展(一)

    这是springmvc框架问题,若不解决次问题 页面传递回来时间类型数据就无法在controller中接受(实体类Date 页面传过是 String ) 也就无法完成新增用户功能。...声明在实体属性上,前端发送 字符串类型日期格式, 可以直接和对象进行绑定匹配!...Spring也有自己一套标签库,通过Spring表单标签; 可以更容易模型数据表单, 命令对象绑定到 HTML 表单元素中; 首先和JSTL标签库一样,在使用Spring表单之前。...modelAttribute 提供一个属性, modelAttribute 提交也把表单数据 返回值控制器;... --> <fm:form action="upd"...cssClass 表单组件对应CSS样式类名 cssErrorClass 当提交表单后报错(服务端错误),采用CSS样式类 cssStyle 表单组件对应CSS样式 htmlEscape 绑定表单属性值是否要对

    11110

    JeecgBoot 3.5.1 版本发布,开源企业级低代码平台

    强大代码生成器让前后端代码一键生成! JeecgBoot引领低代码开发模式(OnlineCoding-> 代码生成-> 手工MERGE), 帮助解决Java项目70%重复工作,让开发更多关注业务。...ISSSUE处理省市区组件JAreaLinkage数据不回显 #382新增通知公告提交指定用户参数有undefined #289角色管理权限配置,保存首页配置提示出错,经过排查发现是SysRoleIndex...#4550在表单中使用v-model:value绑定JSelectDept组件无法清除已选择数据!...#430auto-poi 1.3.6 导入2007 xlsx 格式失败, 导入2003 xls 格式正常 #4225暗夜模式不完整,有bug #448online在线表单(一对多),对子表记录进行新增或编辑...,无法获取到表单信息 #4655JImageUpload及JselectUserByDept小扩展 #452上传组件传入accept限制上传文件类型无效 #455新建用户会自动分配角色 #454autopoi-web

    1.1K10

    <a href=" 全栈程序员栈长 • 2天前 • 未分类 • 阅读 0

    前阵子在一个移动项目中,通过 方式 绑定click 事件来提交一个表单,由于表单信息比较敏感,于是采用post 同步提交方式,原本到也没有什么。...那么,问题来了 , 在ios 下,虚拟键盘是浮在页面上层,导致结果是当键盘收起后,浮在最底部按钮不在最底下,而跑到中间来了,(极端条件下还可能挡住输入框导致无法输入),并且随着屏幕滚动而滚动,,...两种方案,一滚动动态计算位置,实时监控位置必定是要消耗性能,二是由于无法监控到虚拟键盘打开或者关闭,所以只能通过表单元素绑定focus和blur事件来改变按钮position来达到想要效果。...搞完后就开始测试,然后有发现当有input元素处于focus状态,点击提交按钮,无效!!!我再点,好了。。。   原因是因为blur事件会阻止click事件执行。。。   好,我继续改。   ...tap事件,handler处理时候延迟100ms再$(‘*Form’).submit() 又可以正常提交了。

    39510

    培训报名小程序报名功能开发

    在列表页点击报名就跳转到报名页面,先看我们原型图片报名页分为两个部分,上半部分是展示课程详细信息,下半部分是具体提交信息。...,字段类型选择文本图片性别的话我们选择枚举类型,需要创建一个选项集,点击立即创建图片图片输入身份证字段图片输入电话号码字段图片输入工作单位字段图片因为报名和培训内容是一个一对多关系,需要创建一个所属培训内容字段...,类型选择关联关系,和培训内容进行关联图片为了区分数据权限,我们还需要增加一个openid字段图片这样数据源就创建好了图片5 报名信息功能开发第二部分我们要让用户输入报名需要具体数据,微搭使用表单容器组件让用户输入数据...,拖入一个表单容器组件,数据模型选择报名信息图片这里要注意是培训内容需要设置默认值,我们绑定为URL参数图片openid要绑定我们系统变量,从当前用户里选择图片6 设置页面跳转报名信息页面设置好之后...、表单容器组件使用,以及页面跳转参数传递。

    23320
    领券