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

在ASP.NET MVC 5中提交表单后返回同一视图

在ASP.NET MVC 5中,当提交表单后返回同一视图,可以通过以下步骤实现:

  1. 创建一个控制器(Controller)和一个视图(View)。
  2. 在控制器中,创建一个GET方法和一个POST方法来处理表单提交。
  3. 在GET方法中,返回视图并显示表单。
  4. 在POST方法中,接收表单数据,并根据需要进行验证和处理。
  5. 如果表单验证失败,可以将错误信息添加到ModelState对象中,并返回同一视图以显示错误信息。
  6. 如果表单验证成功,可以进行进一步的处理,例如保存数据到数据库等,并根据需要进行重定向或返回同一视图。

以下是一个示例代码:

代码语言:txt
复制
// 控制器
public class HomeController : Controller
{
    // GET方法,显示表单
    public ActionResult Index()
    {
        return View();
    }

    // POST方法,处理表单提交
    [HttpPost]
    public ActionResult Index(FormViewModel model)
    {
        if (ModelState.IsValid)
        {
            // 表单验证成功,进行进一步处理
            // 例如保存数据到数据库等

            // 可以进行重定向到其他页面
            // return RedirectToAction("Success");

            // 或者返回同一视图
            return View(model);
        }

        // 表单验证失败,返回同一视图并显示错误信息
        return View(model);
    }
}

// 视图模型
public class FormViewModel
{
    // 表单字段
    public string Name { get; set; }
    public string Email { get; set; }
    // 其他字段...

    // 可以添加验证规则
    [Required(ErrorMessage = "请输入姓名")]
    public string Name { get; set; }

    [Required(ErrorMessage = "请输入邮箱")]
    [EmailAddress(ErrorMessage = "请输入有效的邮箱地址")]
    public string Email { get; set; }
    // 其他字段...
}

// 视图
@model FormViewModel

@using (Html.BeginForm())
{
    @Html.ValidationSummary()

    <div class="form-group">
        @Html.LabelFor(m => m.Name)
        @Html.TextBoxFor(m => m.Name, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.Name)
    </div>

    <div class="form-group">
        @Html.LabelFor(m => m.Email)
        @Html.TextBoxFor(m => m.Email, new { @class = "form-control" })
        @Html.ValidationMessageFor(m => m.Email)
    }

    // 其他表单字段...

    <button type="submit" class="btn btn-primary">提交</button>
}

在这个示例中,我们创建了一个名为HomeController的控制器,其中包含了一个名为Index的GET方法和一个名为Index的POST方法。GET方法用于显示表单,POST方法用于处理表单提交。

在视图模型FormViewModel中定义了表单字段,并可以添加验证规则。在视图中使用Html.TextBoxFor和Html.ValidationMessageFor等辅助方法来生成表单字段的HTML标签,并显示验证错误信息。

在POST方法中,首先检查ModelState.IsValid属性来判断表单验证是否通过。如果验证失败,可以将错误信息添加到ModelState对象中,并返回同一视图以显示错误信息。如果验证成功,可以进行进一步的处理,例如保存数据到数据库等,并根据需要进行重定向或返回同一视图。

这是一个基本的示例,你可以根据实际需求进行修改和扩展。在实际开发中,你可以使用ASP.NET MVC提供的其他功能和技术来优化和增强表单提交的处理过程。

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

相关·内容

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

2.2 基本数据绑定 在ASP.NET Core MVC中,基本数据绑定涉及将用户提交的数据映射到控制器的动作方法参数或直接映射到模型中。...2.4 视图中的模型绑定 在ASP.NET Core MVC中,视图中的模型绑定是指将控制器传递给视图的模型数据与视图中的元素进行关联的过程。...通过在前端进行验证,用户能够更早地得知输入错误,而不是等到提交表单后才得知。 降低后期成本: 在开发阶段实施强大的数据验证可以降低维护和修复错误的成本。...return ValidationResult.Success; // 或者返回 ValidationResult.Error } } 在控制器中执行验证: 在ASP.NET Core MVC... 在这个例子中: Index 动作方法包含两个版本,一个处理 GET 请求,返回一个用于提交表单的页面;另一个处理 POST 请求,接收表单数据并执行相应的逻辑。

68310

ASP.NET MVC框架(第四部分): 处理表单编辑和提交场景

第三篇讨论了控制器是如何与视图做交互的,特别地讨论了你可以把视图数据从控制器传给视图以显示返回到客户端的回复的各种方法。...在今天的帖子里,我将讨论你可以用MVC框架来处理表单输入和提交场景的各种方法,以及讨论一些你可以用来简化数据编辑场景的HTML辅助方法。...表单输入和提交场景 为示范如何在ASP.NET MVC框架中处理表单输入和提交场景的一些基本原则,我们将建造一个简单的产品列表,产品生成,和产品编辑场景。...在ASP.NET MVC框架中,表单输入和编辑场景一般是通过在Controller类上呈示2个Action方法来处理的。...结语 希望本帖子提供了在ASP.NET MVC框架中如何处理表单输入和提交场景的一些细节,还提供了你可以如何处理和结构化常见数据输入和编辑场景的一些背景。

5.1K70
  • 初识mvc

    一、MVC与ASP.NET MVC基础概念 MVC是Model-View-Controller的缩写. MVC将应用程序划分为3大组件:模型\视图\控制器....ASP.NET MVC从2008年发布1.0版以来,截至2014年ASP.NET MVC最新版本已经是5.0....ASP.NET MVC官网地址:http://www.asp.net/mvc 二、MVC三大组件的相互关系 在控制器中可以直接调用视图和模型 在视图中可以调用模型....模型不能调用视图 模型能够限定视图中使用的数据,但视图中使用的模型应由控制器提供 在视图中可以调用控制器(通过视图中表单的提交和点击超链接的方式调用) 三、ASP.NET Webform模型和ASP.NET...Views\Shared目录下名称相同的视图文件 在Action中return view(),默认会返回和Action名称一样的视图文件.

    1.1K10

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

    这使得用户能够与应用程序进行交互,例如填写表单、点击按钮等。 Razor语法 在ASP.NET Core中,主要使用Razor作为默认的视图引擎。...4.2 常见的模型绑定技巧 在ASP.NET Core MVC中,有一些常见的模型绑定技巧,可以帮助你更灵活、高效地处理用户请求和数据输入。...5.2 Views中的表单标签 在ASP.NET Core的Razor视图中,可以使用HTML表单标签和ASP.NET Core的HTML辅助方法来创建表单。...5.3 表单验证和处理 在ASP.NET Core中,表单验证和处理是Web应用程序中的关键部分。ASP.NET Core提供了内置的模型验证和处理机制,可以方便地处理用户提交的表单数据。...在Razor视图中使用JavaScript库时,确保在引入库文件后,按照库的文档说明使用相应的功能。这有助于保持代码的清晰和可维护性。

    54020

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

    代码完成后,应用程序的大致功能如下:首页:图片点击 RSVP Now 按钮,提交是否参加 Party:图片填写 Name, email address 和 phone以及是否参加:图片提交后进入反馈页面...完成后,首先修改 startup.cs 文件:图片因为我们计划使用 MVC 模式,所以分别创建 model, controller 和 view。...对于 RSVP 表单来说,在 HomeController 中要有 Action 方法,允许路由根据规则指定渲染的视图。...在 HomeController 中添加两个方法,GET 请求用于默认 RSVP 表单的展示,POST 请求用于将数据写到后台(真实的应该是数据库)并且给提交者一个反馈(thanks 视图)。...RSVP 视图是一个表单,允许用户在填写后提交:图片注意 Highlight 的地方,并不是 html 语法,而是微软的 tag helper,为了能使用 tag helper 需要在项目中创建一个 view

    1.3K10

    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core...MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架中,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...为了搭配视图引擎使用,ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要的特性。...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。

    1.9K10

    ASP.NET Core 入门教程 4、ASP.NET Core MVC控制器入门

    一、前言 1、本教程主要内容 ASP.NET Core MVC控制器简介 ASP.NET Core MVC控制器操作简介 ASP.NET Core MVC控制器操作简介返回类型简介 ASP.NET Core...MVC控制器操作简介返回类型示例 ASP.NET Core MVC控制器参数映射逻辑说明 ASP.NET Core MVC控制器参数映射/获取示例 2、本教程环境信息 软件/环境 说明 操作系统 Windows.../item/mvc 二、ASP.NET Core MVC 控制器简介 1、ASP.NET Core MVC 控制器概述 在MVC Web框架中,路由模块会对接收到的请求进行匹配并转交由对应的控制器(Controller...为了搭配视图引擎使用,ASP.NET Core MVC 框架内置了 Microsoft.AspNetCore.Mvc.Controller类,提供了一些视图引擎需要的特性。...Core MVC 控制器操作简介 1、ASP.NET Core MVC 控制器操作概述 控制器(Controller)操作(Action)就是控制器接收到请求后实际用与处理请求的程序方法/函数。

    2.3K40

    ASP.NET MVC编程——视图

    基本规则 1)变量 @后直接变量即可 2)代码块 为使用表达式或多行代码,@后跟大括号将多行代码包括在大括号中 3)“+” 对于加号连接的两个字符串变量或属性,使用小括号将他们括起来 4)插入HTML或文字...Html.Partial 呈现分部视图,返回HTML Html.Action 调用控制器操作呈现分部视图 Html.RenderAction 以内联的方式显示结果 3 Url辅助方法 返回URI字符串...6加载分部视图 1)控制器返回分部视图 配合@Html.Action方法使用控制器操作返回分部视图 视图中使用@Html.Action("TestPy"),控制器如下 public ActionResult...ASP.NET MVC4 Web编程 2.Jon Galloway/Phil Haack/Brad Wilson/K....Scott Allen,孙远帅/邹权译  ASP.NET MVC4 高级编程(第四版) 3.黄保翕,ASP.NET MVC4开发指南 4.蒋金楠,ASP.NET MVC4框架揭秘 5.https://www.asp.net

    3.1K100

    MVC 3.0 的新特性 摘要

    综合分析后得出结论:眼高手低!!! 最后菜鸟痛定思过,决定从最基本的开始一步一步开始学习MVC 3.0 也希望想学习MVC3.0的小菜们分享一下下。。。。...前言 ASP.NET MVC3 在 ASP.NET MVC 1 和 2 的基础上,增加了大量的特性,使得代码更加简化,并且可以深度扩展。...3 Release Notes 支持多视图引擎 在 ASP.NET MVC3 中,增加视图的对话框中允许你选择你希望的视图引擎,在新建项目对话框中,你可以指定项目默认的视图引擎,可以选择 WebForm...实际上,有时你希望能够显式关闭请求的验证,例如你希望允许用户提交 HTML 内容,例如在内容管理系统中,现在你可以通过增加 AllowHtml 标签到 Model 或者视图的 Model 来支持在绑定的时候基于一个属性关闭请求验证...脚手架的改进 MVC3 中的脚手架对于主键提供了更好的支持,例如,脚手架的模板不会将主键加入的编辑表单中了。

    2.6K10

    【ASP.NET Core 基础知识】--路由和请求处理--路由概念(一)

    三、控制器和动作方法 3.1 控制器的角色和作用 控制器在MVC(Model-View-Controller)架构中扮演着核心角色,负责接收用户的请求并协调相应的操作,以便正确呈现视图或执行其他逻辑。...视图选择: 在MVC架构中,控制器通常负责选择合适的视图进行呈现。它决定了用户将看到什么内容,将请求的结果传递给视图进行展示。...3.2 动作方法的定义和调用 动作方法是MVC(Model-View-Controller)架构中控制器的一部分,负责处理特定的用户请求并返回相应的结果。...通过HTML表单提交: 如果用户通过HTML表单提交了请求,表单的action属性通常指向相应的控制器和动作方法。当用户提交表单时,将触发相应的动作方法。...这通常涉及通过HTTP请求发送数据到控制器,并处理返回的结果。 通过路由生成器: 在视图或其他部分中,可以使用路由生成器(UrlHelper)来生成动作方法的URL。

    48110

    ServiceStack.Host.MVC vs ASP.NET MVC

    ServiceStack.Host.MVC vs ASP.NET MVC解决方案解决方案子项ServiceStack.Host.MVC(3.9.71)ASP.NET MVC(3.0)路由 路由规则1.只能配置...一个路由规则可以根据参数的不同配到任意的Controlle.Action入口不受限制 2.支持根据路由生成url路由参数映射1.从路由映射到RequestDTO1.从路由映射到Action参数(参数个数灵活)视图视图参数...1.基本上只能依靠强类型视图1.强类型视图 2.ViewData 3.ViewBag 等等视图语法1.不支持section等方式,导致模板不灵活 2.@{}语句块中不能直接编写非html字符,只能通过Html.raw...()输出 1.支持section等各种利于自定义模板的技术 2.视图语法更加好用AjaxAjax 依赖于servicestack.js(当然这跟rest技术有关),导致不支持表单序列化提交 可在服务器端配置跨域

    89720

    自学MVC看这里——全网最全ASP.NET MVC 教程汇总

    ,总共18+3讲,后3讲主要讲解MVC中一些高级知识点和最新技术,目前博文还在更新中。...4、Controller与Action ASP.NET MVC 入门5、View与ViewData ASP.NET MVC 入门6、TempData ASP.NET MVC 入门7、Hellper与数据的提交与绑定...通过支架创建编辑表单 ASP.NET MVC 音乐商店 - 5 通过支架创建编辑表单 续 ASP.NET MVC 音乐商店 - 6....适合ASP.NET MVC的视图片断缓存方式(上):起步 适合ASP.NET MVC的视图片断缓存方式(中):更实用的API 适合ASP.NET MVC的视图片断缓存方式(下):页面输出原则 由于早期的...为ASP.NET MVC扩展异步Action功能(上) 为ASP.NET MVC扩展异步Action功能(下) 其他高级功能 使用Model Binder绑定Action参数字段时的取舍问题 在ASP.NET

    9.9K81

    .NET Core实战项目之CMS 第十四章 开发篇-防止跨站请求伪造(XSRFCSRF)攻击处理

    而我们这一章就来说道说道如何在ASP.NET Core中处理“跨站请求伪造(XSRF/CSRF)攻击”的,希望对大家有所帮助 写在前面 上篇文章发出来后很多人就去GitHub上下载了源码,然后就来问我说为什么登录功能都没有啊...在ASP.NET Core MVC 2.0或更高版本中,FormTagHelper为HTML表单元素注入防伪造令牌。...form> 在视图中移除FormTagHelper,您可以在Razor视图中添加以下指令移除FormTagHelper: @removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper...所有在ASP.NET Core MVC 和 Razor 页模板中的表单都会生成 antiforgery 令牌。...ASP.NET Core MVC在Ajax中处理跨站请求伪造(XSRF/CSRF)的注意事项 ValidateAntiForgeryToken 在进行Token验证的时候Token是从Form里面取的。

    4K20

    ASP.Net MVC开发基础学习笔记:四、校验、AJAX与过滤器

    DataAnnotations 允许我们描述希望应用在模型属性上的验证规则,ASP.NET MVC 将会使用这些 DataAnnotations ,然后将适当的验证信息返回给用户。   ...")内,并阻止此次表单提交操作。...需要注意的是:   (1)如果你在JQuery AJAX中使用的是get方式的提交,那么在在使用Json返回JsonResult时注意要将第二个参数设置允许Get提交方式:return Json("",...这里是POST方式;   Confirm代表点击提交按钮后提出的确认对话框,并给出用户给定的提示语,这里是:您确定要提交?   ...三、为AOP而生 — ASP.Net MVC默认的过滤器 3.1 过滤器初步   大一点的项目总会有相关的AOP面向切面的组件,而MVC(特指:Asp.Net MVC,以下皆同)项目中Action在执行前或者执行后我们想做一些特殊的操作

    2.1K20

    ASP.NET MVC 5 - 给数据模型添加校验器

    您在前面教程所创建的控制器和视图会自动启用,使用验证指明的Movie model类的属性。使用Edit行为方法,同样的验证方法也完全适用。直到没有任何客户端验证错误的表单数据,才会被发送回服务器。...如果您在浏览器中禁用 JavaScript,然后提交具有错误信息的form,断点将会命中。您仍然得到充分的验证,即使在没有 JavaScript的情况下。...ASP.NET MVC 5 - 开始MVC 5之旅 2. ASP.NET MVC 5 - 控制器 3. ASP.NET MVC 5 - 视图 4. ...ASP.NET MVC 5 - 将数据从控制器传递给视图 5. ASP.NET MVC 5 - 添加一个模型 6. ...ASP.NET MVC 5 - 验证编辑方法(Edit method)和编辑视图(Edit view) 9. ASP.NET MVC 5 - 给电影表和模型添加新字段 10.

    9.1K70

    Asp.Net MVC4入门指南(8):给数据模型添加校验器

    在本教程之前所生成的控制器和视图中,Movie模型类的属性上所指定的验证规则一样可以自动适用。...您可能已经注意到了Title 和Genre属性,在字段中输入文本或者删除文本,是不会执行所需的验证属性的,直到您提交表单 (点Create按钮)时才执行。...上面的顺序将触发必需的验证,而并不需要点击提交按钮。在不输入任何字段的情况下,直接点击提交按钮,将触发客户端验证。直到没有客户端验证错误的情况下,表单数据才会发送到服务器。...如果您在浏览器中禁用 JavaScript,然后提交具有错误信息的form,断点将会命中。您仍然得到充分的验证,即使在没有 JavaScript的情况下。...下面是框架代码在之前的教程中生成的Create.cshtml视图模板。它用来为以上两个操作方法来显示初始的form,同时在验证出错时来重新显示视图。

    4.7K100
    领券