欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之增删改视图(八)

程序员文章站 2022-06-11 17:49:21
在这一篇文章(abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七))中我们创建一个使用Razor视图引擎的视图模板文件,Razor视图模板文件的扩展名为.cshtml,并提供一种比较优雅的方式使用C#来创建HTML输出。Razor视图模板减少了... ......

abp(net core)+easyui+efcore实现仓储管理系统目录

abp(net core)+easyui+efcore实现仓储管理系统——abp总体介绍(一)

abp(net core)+easyui+efcore实现仓储管理系统——解决方案介绍(二)

abp(net core)+easyui+efcore实现仓储管理系统——领域层创建实体(三)

 abp(net core)+easyui+efcore实现仓储管理系统——定义仓储并实现 (四)

abp(net core)+easyui+efcore实现仓储管理系统——创建应用服务(五)

abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之控制器(六)

abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七)

 

        在这一篇文章(abp(net core)+easyui+efcore实现仓储管理系统——展现层实现增删改查之列表视图(七))中我们创建一个使用razor视图引擎的视图模板文件,razor视图模板文件的扩展名为.cshtml,并提供一种比较优雅的方式使用c#来创建html输出。razor视图模板减少了编写程序所需要输入的字符数量和敲击键盘的次数,并实现了快速、流畅的编码工作。下面添加更新视图、删除视图、新增视图的具体步骤:

三、创建更新视图

      在asp.net mvc的默认模板中,更新视图是通过“edit”标签,使用“asp-route-id”属性在浏览器中生成指向views\module\edit.cshtml 视图的链接。具体代码如下。

  <a asp-action="edit" class="waves-effect waves-block" asp-route-id="@item.id"><i class="material-icons">edit</i>@l("edit")</a>

     1) 在visual studio 2017的解决方案资源管理器中,使用鼠标右键单击“module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-abp.tplms.web.mvc”对话框中,选择“razor视图”,并将名称命名为edit.cshmtl。在此视图中添加如下代码。

 

@using abp.tplms.web.startup
@model abp.tplms.web.models.module.editmodulemodalviewmodel

@{

    viewdata["title"] = "edit";
} 

<h2>edit</h2> 

<h4>模块编辑</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="edit">
            <div asp-validation-summary="modelonly" class="text-danger"></div>
            <input type="hidden" asp-for="@model.module.id" />
            <div class="form-group">
                <label asp-for="@model.module.name" class="control-label"></label>
                <input asp-for="@model.module.name" class="form-control" />
                <span asp-validation-for="@model.module.name" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label asp-for="@model.module.displayname" class="control-label"></label>
                <input asp-for="@model.module.displayname" class="form-control" />
                <span asp-validation-for="@model.module.displayname" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.url" class="control-label"></label>
                <input asp-for="@model.module.url" class="form-control" />

                <span asp-validation-for="@model.module.url" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.hotkey" class="control-label"></label>
                <input asp-for="@model.module.hotkey" class="form-control" />

                <span asp-validation-for="@model.module.hotkey" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label asp-for="@model.module.iconname" class="control-label"></label>

                <input asp-for="@model.module.iconname" class="form-control" />
                <span asp-validation-for="@model.module.iconname" class="text-danger"></span>
            </div>
            <div class="form-group">

                <label asp-for="@model.module.requiredpermissionname" class="control-label"></label>
                <input asp-for="@model.module.requiredpermissionname" class="form-control" />
                <span asp-validation-for="@model.module.requiredpermissionname" class="text-danger"></span>
            </div> 

            <div class="form-group">
                <label asp-for="@model.module.requiresauthentication" class="control-label"></label>
                <input asp-for="@model.module.requiresauthentication" type="checkbox" />               

            </div>

            <div class="form-group">
                <label asp-for="@model.module.parentname" class="control-label"></label>
                <input asp-for="@model.module.parentname" class="form-control" value="根目录"/>
                <span asp-validation-for="@model.module.parentname" class="text-danger"></span>
            </div>

            <div class="form-group">
                <input type="submit" value="save" class="btn btn-default" />

            </div>
        </form>
    </div>
</div>
<div>
    <a asp-action="index">back to list</a>
</div>

@section scripts {
    @{await html.renderpartialasync("_validationscriptspartial");}
}

 

四、创建删除视图

        如果你使用过asp.net mvc的进行过应用开发,那么你就知道删除视图是通过“delete”标签,使用“asp-route-id”属性在浏览器中生成指向views\module\delete.cshtml 视图的链接。具体代码如下。

 <a asp-action="delete" class="waves-effect waves-block" asp-route-id="@item.id"><i class="material-icons">delete_sweep</i>@l("delete")</a>

      1) 在visual studio 2017的解决方案资源管理器中,使用鼠标右键单击“module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-abp.tplms.web.mvc”对话框中,选择“razor视图”,并将名称命名为delete.cshmtl。在删除视图文件中添加如下代码。

@using abp.tplms.web.startup
@model abp.tplms.web.models.module.editmodulemodalviewmodel

@{

    viewdata["title"] = pagenames.module;

}

<h2>删除模块</h2>
<h3>are you sure you want to delete this?</h3>

<div>
    <h4>cargo</h4>
    <hr />
    <dl class="dl-horizontal">
        <dt>
            @html.displaynamefor(model => model.module.name)

        </dt>
        <dd>
            @html.displayfor(model => model.module.name)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.displayname)

        </dt>
        <dd>
            @html.displayfor(model => model.module.displayname)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.status)

        </dt>
        <dd>
            @html.displayfor(model => model.module.status)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.requiredpermissionname)

        </dt>
        <dd>
            @html.displayfor(model => model.module.requiredpermissionname)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.iconname)

        </dt>
        <dd>
            @html.displayfor(model => model.module.iconname)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.parentname)

        </dt>
        <dd>
            @html.displayfor(model => model.module.parentname)

        </dd>
        <dt>
            @html.displaynamefor(model => model.module.requiresauthentication)

        </dt>
        <dd>
            @html.displayfor(model => model.module.requiresauthentication)
        </dd>
        <dt>
            @html.displaynamefor(model => model.module.url)
        </dt>
        <dd>
            @html.displayfor(model => model.module.url)

        </dd>
    </dl> 

    <form asp-action="delete">
        <input type="hidden" asp-for="@model.module.id" />

        <input type="submit" value="delete" class="btn btn-default" /> |

        <a asp-action="index">back to list</a>
    </form>
</div>

 

五、创建新增视图

      在asp.net mvc的默认模板中,新增视图是通过“create”标签,使用asp-action="create"属性在浏览器中生成指向views\module\create.cshtml 视图的链接。具体代码如下。

  <a asp-action="create" class="btn btn-primary btn-circle waves-effect waves-circle waves-float pull-right"> <i class="material-icons">add</i></a>

      1) 在visual studio 2017的解决方案资源管理器中,使用鼠标右键单击“module”文件夹,然后选择“添加” > “新建项…”。 在“添加新项-abp.tplms.web.mvc”对话框中,选择“razor视图”,并将名称命名为create.cshmtl,代码如下。

@using abp.tplms.web.startup
@model abp.tplms.web.models.module.editmodulemodalviewmodel

 
@{
    viewdata["title"] = "create";
}

<h4>创建模块</h4>
<hr />
<div class="row">
    <div class="col-md-4">
        <form asp-action="create">
            <div asp-validation-summary="modelonly" class="text-danger"></div>
            <div class="form-group">
                <label asp-for="@model.module.name" class="control-label"></label>
                <input asp-for="@model.module.name" class="form-control" />
                <span asp-validation-for="@model.module.name" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.displayname" class="control-label"></label>

                <input asp-for="@model.module.displayname" class="form-control" />
                <span asp-validation-for="@model.module.displayname" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.url" class="control-label"></label>
                <input asp-for="@model.module.url" class="form-control" />

                <span asp-validation-for="@model.module.url" class="text-danger"></span>

            </div>
            <div class="form-group">
                <label asp-for="@model.module.hotkey" class="control-label"></label>
                <input asp-for="@model.module.hotkey" class="form-control" />

                <span asp-validation-for="@model.module.hotkey" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.iconname" class="control-label"></label>
                <input asp-for="@model.module.iconname" class="form-control" />
                <span asp-validation-for="@model.module.iconname" class="text-danger"></span>

            </div>
            <div class="form-group">
                <label asp-for="@model.module.requiredpermissionname" class="control-label"></label>
                <input asp-for="@model.module.requiredpermissionname" class="form-control" />
                <span asp-validation-for="@model.module.requiredpermissionname" class="text-danger"></span>

            </div>

            <div class="row clearfix">
                <div class="form-group">
                    <div class="checkbox">
                        <label asp-for="@model.module.requiresauthentication"></label>
                        <input asp-for="@model.module.requiresauthentication" type="checkbox" class="filled-in" checked />
                    </div>
                </div>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.parentname" class="control-label"></label>
                <input asp-for="@model.module.parentname" class="form-control" value="根目录" />
                <span asp-validation-for="@model.module.parentname" class="text-danger"></span>
            </div>

            <div class="form-group">
                <label asp-for="@model.module.status" class="control-label"></label>

                <input asp-for="@model.module.status" class="form-control" />
                <span asp-validation-for="@model.module.status" class="text-danger"></span>
            </div>
            <div class="form-group">
                <label asp-for="@model.module.sortno" class="control-label"></label>
                <input asp-for="@model.module.sortno" class="form-control" />
                <span asp-validation-for="@model.module.sortno" class="text-danger"></span>

            </div>

            <div class="form-group">
                <input type="submit" value="create" class="btn btn-default" />
            </div>
        </form>
    </div>
</div> 

<div>
    <a asp-action="index">back to list</a>

</div>
@section scripts {
    @{await html.renderpartialasync("_validationscriptspartial");}

}