MVC技巧收集 - thawk/wiki GitHub Wiki

MVC技巧收集

1. 转换asp.net为razor

需要手工完成部分
  1. Import改为using

    @{ Import Namespace="MvcAjaxPaging.HtmlHelpers"}

    改为

    @using MvcAjaxPaging.HtmlHelpers
  2. 在文件开头指定layout文件

    @{
        ViewBag.Title = "Some title";
        Layout = "~/Views/Shared/site.cshtml";
    }
  3. 把视图中,嵌套的语句中,内层语句前的@去掉

    @if (Model.DepartmentList != null && Model.DepartmentList.Count != 0)
    {
      @foreach (var m in Model.DepartmentList)

    改为

    @if (Model.DepartmentList != null && Model.DepartmentList.Count != 0)
    {
      foreach (var m in Model.DepartmentList)

2. Controller与View之间传递数据

2.1. 向Javascript传递列表或字典

可以通过使用Json.Encode()进行,不需要手工拼凑字符串,再还原了。

<script type="text/javascript">
    var list = @Html.Raw(Json.Encode(Model.YourList));
    $.each(list, function(index, element) {
        // TODO: Do something with the element.
    });
</script>

2.2. 生成下拉列表

可以使用Html.DropDownList()方法,可以指定控件ID、选项列表、提示文本及 HTML属性等信息。

可以通过SelectList()方法,把List<object>转换为选项列表,后面两个参数分 别是数值和对应文字的字段名称。

@Html.DropDownList("sExpenseType", new SelectList(Model.ecTypeList, "id", "expensetype"), "请选择费用名称", new { @class = "txt" })

3. 在Controller构造时,取得一个目录的绝对路径

temp = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "TheFolder");

4. 利用WebGridMvc进行分页显示

需要为项目加入WebGrid Mvc包才能使用。

@using WebGridMvc

@if (Model.AccountsDetailList != null)
{
  var grid = Html.ServerPagedGrid(
      Model.AccountsDetailList,
      Model.PagingInfo.TotalItems,
      canSort: false,   // 不可以点表头排序
      rowsPerPage: Model.PagingInfo.ItemsPerPage);

  @grid.GetHtml(
      mode: WebGridPagerModes.All,
      tableStyle: "tblist",
      headerStyle: "FeedBackTit",
      rowStyle: "FeedBackT",
      alternatingRowStyle: "FeedBack",
      firstText: "首页",
      previousText: "上一页",
      nextText: "下一页",
      lastText: "末页",
      columns: grid.Columns(
        grid.Column("时间", format: @<text>@item.dateTime.ToString("yyyy-MM-dd")</text>),
        grid.Column("明细", format: @<text>@item.name</text>),
        grid.Column("部门", format: @<text>@item.departmentName</text>),
        grid.Column("费用名称", format: @<text>@item.expensetype</text>),
        grid.Column("费用种类", format: @<text>@item.statusName</text>),
        grid.Column("金额(元)", format: @<text>@item.money</text>),
        grid.Column("余额(元)", format: @<text>@item.Balance</text>),
        grid.Column("操作",
          format: @<text>
          @Html.ActionLink(
            "修改", "AccountsDetailAdd", "AccountsDetail", new { id = item.id }, null)
          @Html.ActionLink(
            "删除", "deleteEq", "AccountsDetail",
            new { id = item.id },
            new
            {
            href = "javascript:deleteEq(" + item.id + ");"
            })
          </text>)
        )
    )
}

5. 其它

Url.ActionLink

⚠️ **GitHub.com Fallback** ⚠️