zoukankan      html  css  js  c++  java
  • Asp.net MVC +JQueryValidation + AjaxForm

    环境:vs2010 , asp.net mvc2

    效果图:

    image

    image

    image

     image

    主要的代码:

    HomeController.cs

    using System.Linq;
    using System.Threading;
    using System.Web.Mvc;
    using JqueryValidate.Models;

    namespace JqueryValidate.Controllers
    {
    [
    HandleError]
    public class HomeController : BaseController
    {
    public ActionResult Index()
    {
    var model = Database.List;
    return View("Index",model);
    }

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

    public ActionResult Edit(int? id)
    {
    Thread.Sleep(1000);
    var model = Database.List.FirstOrDefault(z => z.Id == id) ??new MyModel {Id = 0};
    return PartialView("Edit", model);
    }

    [
    HttpPost]
    public ActionResult Edit(MyModel modelel)
    {
    if (!ModelState.IsValid)
    return JsonError(GetError(ModelState), true);
    if (modelel.Id != 0)
    {
    var find = Database.List.FirstOrDefault(z => z.Id == modelel.Id);
    if (find != null)
    {
    find.Name = modelel.Name;
    find.Address = modelel.Address;
    find.Age = modelel.Age;
    return Success("更新成功|",true);
    }
    }
    modelel.Id = Database.List.Count + 1;
    Database.List.Add(modelel);
    return Success("创建成功|",true);
    }
    }
    }

    MyModel.cs

    using System.ComponentModel;
    using System.ComponentModel.DataAnnotations;
    using System.Web.Mvc;

    namespace JqueryValidate.Models
    {
    public class MyModel
    {
    [
    HiddenInput(DisplayValue = false)]
    public int Id{ get; set;}

    [
    DisplayName("姓名")]
    [
    Required]
    public string Name{ get; set;}

    [
    DisplayName("地址")]
    [
    Required]
    [
    StringLength(5,ErrorMessage = "不能大于个字符")]
    public string Address{ get; set;}

    [
    DisplayName("年ê龄?")]
    [
    Required]
    [
    Range(1,100,ErrorMessage = "必须填写1-100以内的整数")]
    public int Age { get; set;}
    }
    }

    Database.cs

    using System.Collections.Generic;

    namespace JqueryValidate.Models
    {
    public static class Database
    {
    static Database()
    {
    List = new List<MyModel>();
    }

    public static List<MyModel> List { get; set;}
    }
    }

    Index.aspx

    <%@ Page Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<List<JqueryValidate.Models.MyModel>>" %>
    <%
    @ Import Namespace="JqueryValidate.Models" %>
    <asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    Home Page
    </asp:Content>
    <
    asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <%=Html.ActionLink("新?建¨", "Edit", new {}, new {@class = "d", width = 400, height = 300})%>
    <table>
    <
    thead>
    <
    tr>
    <
    th>Id</th>
    <
    th width="200">姓?名?</th>
    <
    th width="200">地?址·</th>
    <
    th>年ê龄?</th>
    <
    th>&nbsp;</th>
    </
    tr>
    </
    thead>
    <
    tbody>
    <%foreach (MyModel item in ViewData.Model)
    {
    %>
    <tr>
    <
    td><%=item.Id%></td>
    <
    td><%=item.Name%></td>
    <
    td><%=item.Address%></td>
    <
    td><%=item.Age%></td>
    <
    td><%=Html.ActionLink("编à辑-", "Edit", new {id = item.Id},new {@class = "d", width = 400, height = 300})%></td>
    </
    tr>
    <%}%>
    </tbody>
    </
    table>
    </
    asp:Content>

    Edit.ascx

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<JqueryValidate.Models.MyModel>" %>
    <script src="/Scripts/jquery.form.js" type="text/javascript"></script>
    <
    script src="/Scripts/jquery.validate.pack.js" type="text/javascript"></script>
    <%Html.EnableClientValidation();%>
    <%
    using (Html.BeginForm("Edit", "Home", new {}, FormMethod.Post, new {})){%>
    <%=Html.EditorForModel()%>
    <input type="submit" value="确·认?" />
    <%}%>
    <script src="/Scripts/MicrosoftMvcJQueryValidation.js" type="text/javascript"></script>
    <
    script type="text/javascript">
    //<![CDATA[
    $("input:text").css({
    border:
    "solid 1px #ccc",
    padding:
    "4px"
    });
    $(
    "#form0 input:submit").button();
    function validate(formData, jqForm, options){
    return $("#form0").valid();
    }
    $(
    function(){
    var ajaxProjectImageListOptions = {
    beforeSubmit: validate ,
    success:
    function(html){
    var result;
    try {
    result = eval(
    '(' + html + ')');
    }
    catch (ex) {
    result = html;
    }
    if (result.Error != undefined) {
    alert(result.Text);
    }
    else {
    $(
    "#dialogPanel").dialog({
    autoOpen:
    false,
    modal:
    true,
    buttons: {
    关?闭?:
    function(){
    $(
    "#dialogPanel").empty();
    $(
    this).dialog('close');
    }
    }
    });
    $(
    "#dialogPanel").html(html);
    $(
    "#dialogPanel").dialog('open');
    }
    }
    };
    $(
    "#form0").ajaxForm(ajaxProjectImageListOptions);
    });
    //]]>
    </script>

    源码下载:/Files/francis67/JqueryValidate.rar

  • 相关阅读:
    SpringBoot实现原理
    常见Http状态码大全
    forward(转发)和redirect(重定向)有什么区别
    1094. Car Pooling (M)
    0980. Unique Paths III (H)
    1291. Sequential Digits (M)
    0121. Best Time to Buy and Sell Stock (E)
    1041. Robot Bounded In Circle (M)
    0421. Maximum XOR of Two Numbers in an Array (M)
    0216. Combination Sum III (M)
  • 原文地址:https://www.cnblogs.com/francis67/p/1730544.html
Copyright © 2011-2022 走看看