• MVC从新手到入门(二)----添加功能的实现


    做程序永远离不开增删改查,今天我们来说说如何用MVC实现添加功能,

    一、主页面添加跳转按钮

    上篇博文,我们已经完成了页面加载和简单的查询操作,我们先在查询旁边再添加一个按钮

    这里给大家介绍一种新的按钮书写形式:

    @Html.ActionLink(一、按钮的名字,二、执行的方法,三、参数,四、属性),代码如下:

     @Html.ActionLink("添加", "CreateDepartment", null, new { @class = "btn btn-primary" })

    非常好用,出来效果是这样的

    二、添加控制器,创建跳转视图 

    这里第二个参数的名字就是要执行添加控制器的名字,我们需要再控制器中添加这样一个方法

            /// <summary>
            /// 此方法只做页面的跳转,不做其他操作
            /// </summary>
            /// <returns></returns>
            public ActionResult CreateDepartment()
            {
                return View();
            }

    同样的,我们需要给新建功能创建视图,右键添加视图即可,视图中写添加的页面部分代码:

    @model HPIT.MVC7_27PM.Models.Department
    @{
        ViewBag.Title = "CreateDepartment";
    }
    
    <h2>CreateDepartment</h2>
    @*<form action="Create" method="post" ></form>*@
    @using (Html.BeginForm())
    {
    <table class="table">
        <tr>
            <td>
                科室名称:
            </td>
            <td>
                @Html.EditorFor(m => m.D_Name);
            </td>
        </tr>
        <tr>
            <td>
                科室备注:
            </td>
            <td>
                @Html.EditorFor(m => m.D_Desc);
            </td>
        </tr>
        <tr>
            <td colspan="2">
                <input type="submit" class="btn btn-danger" value="添加" />
            </td>
        </tr>
    </table>
    }
     @Html.EditorFor(m => m.D_Name);返回一个由表达式表示的对象中的每个属性所对应的input元素,主要是针对强类型,一般这种方式用得多些
    他可以直接对应model中的对象,我今天是第一次接触这种用法,但是太赞了,非常好用。
    三、完成控制器中添加功能的实现
    注意:添加的提交按钮一定要是submit,实现添加的代码要加[HttpPost]标签
         /// <summary>
            /// 执行添加操作的方法
            /// </summary>
            /// <param name="d"></param>
            /// <returns></returns>
            [HttpPost]
            public ActionResult CreateDepartment(Department d)
            {
                db.departments.Add(d);//将d对象的状态设置成添加的状态
                int i=db.SaveChanges();//将本地更改提交给数据库
                if (i > 0)
                {
                    return RedirectToAction("Index");//跳转当前路由的Index控制器
                } else
                {
                    return View();//停留在本页面
                }
            }

    这样代码部分就完成了,我们来看看效果吧,添加一个效果科:

     添加成功跳转页面,完美!

    当然界面部分完成的还是比较丑的,有些细节写的也不是很到位,可以再微调一下。

    -------------------------------------------------------------------------------------------------------------------

    今天的分享就到这里,你学会了吗?



  • 相关阅读:
    关于页面元素不可见的几种方法
    关于a标签点击禁止的
    v-bind 的作用 以及:key的作用
    v-model双向绑定的原理
    es6之babel
    父子组件之间的传参
    组件名学习
    PreparedStatement執行sql語句
    Statement执行DQL语句(查询操作)
    MySQL 插入数据时,中文乱码???问题的解决
  • 原文地址:https://www.cnblogs.com/JuneDream/p/13386907.html
Copyright © 2020-2023  润新知