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

ASP.NET MVC 2 - Html.Editor对于可以为空的类型?

在 ASP.NET MVC 2 中,Html.Editor 用于创建自定义编辑器,通常用于处理 HTML 标记。对于可以为空的类型,可以使用 Html.Editor 方法将表单内容提交到服务器,并将返回的 HTML 标记插入到页面中。

以下是一个简单的示例代码:

代码语言:csharp
复制
using System.Web.Mvc;
using System.Web.UI;

public class MyController : Controller
{
    // ...

    public ActionResult MyForm()
    {
        return View();
    }

    [HttpPost]
    public ActionResult MyForm(FormCollection form)
    {
        string html = "<p>My form</p>";
        return View("MyForm", html);
    }
}

在上面的代码中,MyForm 方法处理表单提交,并使用 Html.Editor 方法创建自定义编辑器。Html.Editor 方法接受一个字符串参数,该参数指定要插入页面的 HTML 标记。在上面的示例代码中,Html.Editor 方法将一个简单的 HTML 段落标记插入到页面中。

Html.Editor 方法还可以使用 Html.EditorFor 方法来创建可以为空的类型。EditorFor 方法接受一个参数,该参数指定要显示的编辑器的名称,而不是直接插入 HTML 标记。以下是一个示例代码:

代码语言:csharp
复制
using System.Web.Mvc;

public class MyModel
{
    public string Name { get; set; }
}

public class MyController : Controller
{
    // ...

    public ActionResult MyForm()
    {
        return View();
    }

    [HttpPost]
    public ActionResult MyForm(MyModel model)
    {
        if (ModelState.IsValid)
        {
            // Save the model to the database
            return RedirectToAction("Index");
        }
        return View("MyForm", model);
    }
}

在上面的代码中,MyModel 包含一个 Name 属性,该属性可以设置为任何类型。在 MyForm 方法中,我们使用 EditorFor 方法创建一个可以为空的类型,并将其传递给视图。在视图 MyForm.cshtml 中,我们可以使用 @Html.EditorFor(x => x.Name) 来显示 Name 属性,如下所示:

代码语言:html
复制
@model MyModel

@using (Html.BeginForm())
{
    @Html.EditorFor(x => x.Name)
    <button type="submit">Submit</button>
}

在上面的代码中,我们使用 EditorFor 方法创建了一个可以为空的类型,并将其显示在表单中。如果表单是有效的,则我们将其保存到数据库中,并返回一个视图。如果表单无效,则我们返回 MyForm 视图,并将 Name 属性的值设置为空。

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

相关·内容

ASP.NET MVC使用Bootstrap系统(2)——使用Bootstrap CSS和HTML元素

ASP.NET MVC创建包含Bootstrap样式编辑模板 基元类型 编辑模板(Editor Template)指的是在ASP.NET MVC应用程序中,基于对象属性的数据类型通过Razor视图渲染后...ASP.NET MVC包含了若干的编辑模板,当然我们也可以实现扩展。编辑模板类似于局部视图,不同的是,局部视图通过name来渲染,而编辑模板通过类型来渲染。...举个栗子,@Html.EditorFor(model => model.Property),如果Property类型为string,那么@Html.Editor 会创建一个Type=Text的Input...如下所示: 非基元类型 ASP.NET MVC能让开发者创建根据自定义DataType的编辑模板,比如自动生成多行文本框并且规定行数为3行,也是同样的操作: 添加MultilineText....最后探索了ASP.NET MVC中的编辑模板,能让产生的input元素自动包含form-control样式。

4K40

ASP.NET MVC使用Bootstrap系列(2)——使用Bootstrap CSS和HTML元素

ASP.NET MVC创建包含Bootstrap样式编辑模板 基元类型 编辑模板(Editor Template)指的是在ASP.NET MVC应用程序中,基于对象属性的数据类型通过Razor视图渲染后...ASP.NET MVC包含了若干的编辑模板,当然我们也可以实现扩展。编辑模板类似于局部视图,不同的是,局部视图通过name来渲染,而编辑模板通过类型来渲染。...举个栗子,@Html.EditorFor(model => model.Property),如果Property类型为string,那么@Html.Editor 会创建一个Type=Text的Input...非基元类型 ASP.NET MVC能让开发者创建根据自定义DataType的编辑模板,比如自动生成多行文本框并且规定行数为3行,也是同样的操作: 添加MultilineText....最后探索了ASP.NET MVC中的编辑模板,能让产生的input元素自动包含form-control样式。

6.2K80
  • asp.net MVC 验证注解

    对于Web系统,对于用户的输入验证是必须的。不仅需要在客户端对用户的输入进行验证,在服务端也需要对用户的执行进行验证。 asp.net MVC中对于验证提供了一种注解机制。...当属性中一个是null或空时,Required特性将会引发一个验证错误。...[A-Za-z]{2,4}")] 4.Range Range特性能够指定数值类型的最小值和最大值。该特性的第一个参数设置最小值。第二个参数设置最大值。...Range既可以设置int类型,也可以设置成double类型。 [Range(5,15)] 5.System.Web.Mvc MVC中提供了两个验证特性,分别是Remote和Compare特性。...[Compare("Password")] public String ConfirmPassword{get;set;} ErrorMessage 可以为注解添加自定义的错误消息提示。

    1.9K90

    Asp.net mvc 知多少(五)

    本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com...该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...系列导航 Asp.net mvc 知多少(一) Asp.net mvc 知多少(二) Asp.net mvc 知多少(三) Asp.net mvc 知多少(四) Asp.net mvc 知多少(五) 本节主要讲解几种页面传值方式和...详情可参考:TempData知多少, Session ASP.NET MVC中Session是Controller中的一个属性,Session是HttpSessionStateBase类型。...Asp.net MVC 中集成了以下几种ActionResults类型及对应的帮助类方法: ViewResult - 使用Controller中提供的View()方法返回一个ViewResult用来呈现指定或默认的

    3K60

    ASP.NET MVC Controller激活系统详解:总体设计

    对于Default选项来说,ASP.NET通过映射的HttpHandler类型是否实现了相关接口来决定具体的会话状态控制行为。...我们使用Visual Studio提供的项目模板创建一个空的ASP.NET MVC应用,并且使用如下所示的默认路由注册代码。...[关于ASP.NET MVC路由,在我的文章《ASP.NET MVC路由扩展:路由映射》中具有详细的介绍] 在解析Controller真实类型的过程中,会先通过RouteData包含的命名空间来解析Controller...在一个通过Visual Studio的ASP.NET MVC项目创建的空Web应用中,我们添加一个名称为Admin的Area,此时IDE会默认为我们添加如下一个AdminAreaRegistration...对于ASP.NET MVC应用来说,RouteData的RouteHandler属性类型为MvcRouteHandler,体现在MvcRouteHandler类型上关于HttpHandler的提供机制基本上

    1.7K60

    ASP.NET MVC Controller激活系统详解:IoC的应用

    然后调用它的泛型的Resolve方法创建一个实现了泛型接口IA的对象。最后将返回对象转变成类型A,并检验其B、C和D属性是否是空。...No 二、Controller与Model的分离 在《MVC、MVP以及Model2[下篇]》中我们谈到ASP.NET MVC是基于MVC的变体Model2设计的。...对于一个ASP.NET MVC应用来说,用户交互请求直接发送给Controller。...对于IoC的ControllerFactory的创建,我们可以直接实现IControllerFactory接口创建一个全新的ControllerFactory类型,这需要实现包括Controller类型的解析...我们通过Visual Studio的ASP.NET MVC项目模板创建一个空的Web应用,并添加针对Unity的两个程序集(Microsoft.Practices.Unity.dll和Microsoft.Practices.Unity.Configuration.dll

    1.8K90

    从 MVC 到使用 ASP.NET Core 6.0 的Minimal API

    在 ASP.NET Core MVC 应用程序中,控制器负责接受输入、执行或编排操作并返回响应。它是一个功能齐全的框架,通过过滤器、内置模型绑定和验证、约定和基于声明的行为等提供可扩展的管道。...对于许多人来说,它是构建现代 HTTP 应用程序的多合一解决方案。 在某些情况下,您可能只需要 MVC 框架的特定功能或具有使 MVC 不受欢迎的性能限制。...; 所述pattern指定路线的不同区段,并且允许指定的默认值。参数可以利用 ASP.NET 的路由约束语法[3]来限制接受的值。 对于 API,建议使用基于属性的路由[4]。...page=2&pagesize=20将满足上述操作参数的请求。 上面的示例还通过将可选参数标记为可为空并可选地提供默认值来演示可选参数的使用。 这对于复杂类型的工作方式略有不同。...即使将类型设为可空,如果未发送正文,您将收到 HTTP 415(无效媒体类型)或 400(错误请求)响应,具体取决于是否Content-Type设置了标头。

    7.6K10

    ASP.NET MVC以ModelValidator为核心的Model验证体系: ModelValidator

    [本文已经同步到《How ASP.NET MVC Works?》...一般来说,当它们用于验证某个复杂类型对象的时候,针对于类型本身验证返回的ModelValidationResult对象的MemberName属性为空字符串;而对于针对属性验证来说,属性名称直接作为MemberName...ValidationResult Success; 5: } 二、DataAnnotationsModelValidator 稍微了解ASP.NET MVC的读者应该知道,我们可以通过数据类型的某个属性上应用相应的验证标注特性...(比如RequiredAttribute、RangeAttribute和RegularExpressionAttribute等)的方式来定义相应的验证规则,这是ASP.NET MVC 提供的默认Model...this[string columnName] { get; } 5: } ASP.NET MVC的Model验证系统为实现了IDataErrorInfo接口的数据对象的验证定义专门的

    1.5K10

    Asp.net mvc 知多少(六)

    本系列主要翻译自《ASP.NET MVC Interview Questions and Answers 》- By Shailendra Chauhan,想看英文原版的可访问http://www.dotnettricks.com...该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...系列导航 Asp.net mvc 知多少(一) Asp.net mvc 知多少(二) Asp.net mvc 知多少(三) Asp.net mvc 知多少(四) Asp.net mvc 知多少(五) Asp.net...该插件是从ASP.NET MVC3引入的,通过使用组合的jquery验证和HTML5数据属性在客户端应用数据模型验证。 Q67....对于这种情形,你需要强制浏览器去刷新/加载。 但是捆绑会自动处理这种问题,通过为每一个捆绑添加一个hash code作为url的查询参数。

    2.4K50

    ASP.NET MVC 4 - 测试驱动 ASP.NET MVC

    在本文中,我将论述用于增强您的 ASP.NET MVC 应用程序的可测试性的最佳做法和技术,包括如何建立您的解决方案的结构、设计代码架构以便处理依赖关系注入以及使用 StructureMap 实现依赖关系注入...首先,我建议在创建 ASP.NET MVC 项目时使用空的项目模板。其他模板很适合于试验或创建概念证明,但它们通常会包含许多会让人分神且在真正的企业应用程序中不必要的干扰内容。...对于 ASP.NET MVC 应用程序开发,我建议使用在图 1 和图 2 中阐释的方法,其中包含以下项目: Web 项目包含所有特定于 UI 的代码,包括视图、视图模型、脚本和 CSS 等。...在命名项目时添加测试类型是很有必要的,可避免命名冲突以及确定您在编辑器内处理的测试类型。图 4 显示具有测试项目的解决方案资源管理器。 ?...他从事软件开发工作已经 10 多年了,并专门从事大规模的 ASP.NET 和 ASP.NET MVC 网站开发。

    5.4K70

    ASP.NET MVC下的四种验证编程方式

    在《ASP.NET MVC下的四种验证编程方式》一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式(“手工验证”、“标注ValidationAttribute特性”、“让数据类型实现IValidatableObject...一、ModelValidator与ModelValidatorProvider 虽然Model绑定的方式因被验证数据类型的差异而有所不同,但是ASP.NET MVC总是使用一个名为ModelValidator...ASP.NET MVC 通过静态类型ModelValidatorProviders对使用的ModelValidatorProvider进行注册。...二、DataAnnotationsModelValidator 我们在《ASP.NET MVC下的四种验证编程方式》中介绍了三种不同的“自动化验证”的编程方式,ASP.NET MVC在内部会采用不同的ModelValidator...对于上面提到的这三种验证编程方式,第一种(利用应用在数据类型或其数据成员上的ValidationAttribute特性来定义相应的验证规则)是最为常用的。

    98680

    ASP.NET MVC三个重要的描述对象:ControllerDescriptor和ActionDescriptor的创建

    ASP.NET MVC对Conroller采用的ActionInvoker类型的选择机制是这样的: 通过当前的DependencyResolver以IAsyncActionInvoker接口去获取注册的...在默认的情况下,当前的DependencyResolver直接通过对指定的类型进行反射来提供对应的实例对象,所以对于前面两个步骤返回的对象均为Null,所以默认创建出来的ActionInvoker类型为...在通过Visual Studio的ASP.NET MVC项目模板创建的空Web应用中,我们创建了如下一个默认的HomeController,在Action方法Index中直接通过ContentResult...我们通过Visual Studio的ASP.NET MVC项目模板创建一个空Web应用,并创建一个默认的HomeController,然后对其进行如下的修改。...ASP.NET MVC三个重要的描述对象:ControllerDescriptor ASP.NET MVC三个重要的描述对象:ActionDescriptor ASP.NET MVC三个重要的描述对象

    65880

    ASP.NET MVC是如何运行的: 建立在“伪”MVC框架上的Web应用

    为了上读者从整体上把握ASP.NET MVC的工作机制,接下来我按照其原理通过一些自定义组件来模拟ASP.NET MVC的运行原理,我们也可以将此视为一个“迷你版”的ASP.NET MVC。...值得一提的是,为了让读者根据该实例从真正的ASP.NET MVC中找到对应的组件,我完全采用了与ASP.NET MVC一致的类型命名方式。...我们通过Visual Studio创建一个空的ASP.NET Web应用(注意不是ASP.NET MVC应用),我们不会引用System.Web.Mvc.dll这个程序集,所以你在接下来的程序中看到的定义在该程序集中的同名类型都是我们自行定义的...MVC根据请求地址来解析出用于处理该请求的Controller的类型和Action方法名称。...ASP.NET MVC是如何运行的[1]: 建立在“伪”MVC框架上的Web应用 ASP.NET MVC是如何运行的[2]: URL路由 ASP.NET MVC是如何运行的[3]: Controller

    1.3K60

    asp.net MVC 应用程序的生命周期

    因为在平常的开发过程中,我们可能知道怎样去使用MVC框架来处理相关的请求,大部分的时候我们只是在controller和action方法之间做相关的处理,对于真正内在的运行机制可能不是很了解。...MVC框架出现之前,我们大部分开发所使用的框架都是ASP.NET WebForm.其实不管是MVC还是WebForm,在请求处理机制上,大部分是相同的。...HttpModule  ASP.NET拥有一个高度可扩展的引擎,并且能够处理对于不同资源类型的请求。这就是HttpModule。...HttpHandler                                                            对于不同的资源类型的请求,ASP.NET会加载不同的HttpHandler...(2)通过在全局Web.Config中注册 System.Web.Routing.UrlRoutingModule,IIS请求处理管道接到请求后,就会加载 UrlRoutingModule类型的Init

    1.9K90

    ASP.NET MVC 1.0发布

    在官方下载页面上对ASP.NET MVC这样描述道: ASP.NET MVC在现有的ASP.NET 3.5运行时的基础上提供了一个新的MVC框架。...微软的产品在坊间流传一种说法是“微软的产品一般要到3.0版本才比较稳定,成熟,可以放心使用”,但是这次发布的ASP.NET MVC 1.0可以打破这种宿命了,ASP.NET MVC 经过2年多的开发,有一堆的微软专家和社区精英共同研发出来...学习ASP.NET MVC 的过程中,有很多开发观念、开发技巧需要学习,而且学习 ASP.NET MVC 几乎等于放弃服务端控件的使用 (因为没有ViewState可用),有些服务端控件还是可以用的,例如...而且 ASP.NET MVC 跟传统的 ASP.NET 的webform可以并存在同一个网站中,彼此也不会打架,所以大型网站可以逐步转换为 ASP.NET MVC,具体可参看CMS项目Cuyahoga:...要让一个懂 ASP.NET 的人主动学习 ASP.NET MVC还真的不是一件容易的事,毕竟这两者之间还是有一些鸿沟的,而且还要放弃掉一些曾经拥有(可能还是引以为豪)的知识,例如:服务端控件(Server

    1.3K100

    Asp.net web api 知多少

    该书主要分为两部分,ASP.NET MVC 5、ASP.NET WEB API2。本书最大的特点是以面试问答的形式进行展开。通读此书,会帮助你对ASP.NET MVC有更深层次的理解。...任何会话类型的数据应该在客户端保存和处理,只有在每次请求中按需传递到服务器。 Cacheable(可缓存) - 客户端应该能够缓存响应以供后续使用。 Q3. REST和 SOAP间的区别是什么?...但是它并不是MVC框架的一部分。它是 ASP.NET 平台的核心部分。能被MVC或者其他类型的web应用使用。同时它也可以用作独立的web服务应用程序。...与ASP.NET MVC不同,WEB API仅能返回数据,返回的数据格式可以为string,json,xml,text等。 Q10....不像ASP.NET MVC,Web API仅能接收一个复杂类型作为参数。 Q14. ASP.NET WEB API2中如何启用特性路由? Ans.

    4.8K50
    领券