Entity FrameWork 實作CRUD

先引入查詢的Viewmodel

Index.cshtml

@model CMA.Data.ViewModel.CMAMasterViewModel

@{
    ViewBag.Title = "CMA";
    Layout = "~/Views/Shared/LayoutMainNew.cshtml";
}

<h2>CMA</h2>
@using (Html.BeginForm("Query", "CMA", FormMethod.Post, new { @class = "form-horizontal" }))
{
    <div class="form-group">
        <div class="col-sm-3">
            <h3>ID</h3>
        </div>
        <div class="col-sm-3">
            <h3>屋齡</h3>
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-3">
            @Html.CMATextBoxFor(t => t.C21_AGENT_ID)
        </div>
        <div class="col-sm-3">
            @Html.CMATextBoxFor(t => t.YEAR_BUILT)
        </div>
        <div class="col-sm-1">
            <button type="button" id="search" class="btn btn-primary">查詢</button>
        </div>
        <div class="col-sm-1">
            <button type="button" id="insert" class="btn btn-primary" onclick="location.href='@Url.Action("Insert")'">新增</button>
        </div>
    </div>
}
<script>
    //利用ajax不同步導入查詢的資料
    $(function ()
    {
        //按下按鈕觸發事件
        $("#search").click(function ()
        {
            var data = {
                C21_AGENT_ID: $("#C21_AGENT_ID").val(),
                YEAR_BUILT: $("#YEAR_BUILT").val(),
            };
            $.ajax({
                type: 'POST',
                url: '@Url.Action("CMA_Master")',
                data: data,
                success: function (result) {
                    $('#data').html(result);
                }
            });
            return false;
        });

        /
        var data = {
            C21_AGENT_ID: $("#C21_AGENT_ID").val(),
            YEAR_BUILT: $("#YEAR_BUILT").val(),
        };
        $.ajax({
            type: 'POST',
            url: '@Url.Action("CMA_Master")',
            data: data,
            success: function (result) {
                $('#data').html(result);
            }
        });
    });

</script>

Query.cshtml

@model IQueryable<CMA.Data.CMA_MASTER>
<div style="overflow:scroll;height:300px">
    <table class="table">
        <tr>
            <th>ID</th>
            <th>NAME</th>
            <th>C21_AGENT_ID</th>
            <th>ZIP_CODE</th>
            <th>CITY_ID</th>
            <th>DISTRICT_ID</th>
            <th>ROAD_NAME</th>
            <th>LANE</th>
            <th>ALLEY</th>
            <th>NUMBER</th>
            <th>FLOOR</th>
            <th>TOTAL_FLOOR</th>
            <th>SUGGEST_PRICE</th>
            <th>YEAR_BUILT</th>
        </tr>
        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.ID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.NAME)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.C21_AGENT_ID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.ZIP_CODE)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.CITY_ID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.DISTRICT_ID)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.ROAD_NAME)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.LANE)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.ALLEY)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.NUMBER)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.FLOOR)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.TOTAL_FLOOR)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.SUGGEST_PRICE)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.YEAR_BUILT)
                </td>
                <td>
                    <button type="button" class="btn btn-link" onclick="location.href='@Url.Action("Update",new { id=item.ID})'">編輯</button>
                </td>
                <td>
                    <button type="button" class="btn btn-link" onclick="location.href='@Url.Action("Delete",new { id=item.ID})'">刪除</button>
                </td>
            </tr>
        }
    </table>
</div>

QueryController

 [HttpPost]
        public ActionResult Query(CMAMasterViewModel model)
        {
            AdapterCMARepository adapterCMARepository = new AdapterCMARepository();
            IQueryable<CMA_MASTER> cmaMasters;

            //預設查詢全部
            if (model.C21_AGENT_ID == null)
            {
                cmaMasters = adapterCMARepository.CMAMasterRepository.GetAll();
            }
            else
            {
                cmaMasters = adapterCMARepository.CMAMasterRepository.GetAll().Where(t => t.C21_AGENT_ID == model.C21_AGENT_ID && t.YEAR_BUILT == model.YEAR_BUILT);
            }

            return View(cmaMasters);
        }

Insert.cshtml

@model CMA.Data.CMA_MASTER
@{
    ViewBag.Title = "CMA_Insert";
    Layout = "~/Views/Shared/LayoutMainNew.cshtml";
}

<h2>CMA_Insert</h2>
<form class="form-horizontal" action="@Url.Action("Insert")" method="post">
    <div class="form-group">
        <label class="control-label col-sm-2">Name</label>
        <div class="col-sm-3">
            @Html.CMATextBoxFor(o => o.NAME)
        </div>
        <label class="control-label col-sm-2">ZipCode</label>
        <div class="col-sm-3">
            @Html.CMATextBoxFor(o => o.ZIP_CODE)
        </div>
    </div>
    <div class="form-group">
        <div class="col-sm-4">
            <button type="submit" class="btn btn-default">儲存</button>
            <button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("Index")'">返回</button>
        </div>
    </div>
</form>

InsertController

//新增
        public ActionResult Insert()
        {
            return View();
        }

        [HttpPost]
        public ActionResult Insert(CMA_MASTER model)
        {
            AdapterCMARepository main = new AdapterCMARepository();

            main.CMAMasterRepository.Create(model);

            model.CITY_ID = 1;
            model.DISTRICT_ID = 1;
            model.ROAD_NAME = "1";
            model.FLOOR = "1";
            model.BEDROOM_NUM = 1;
            model.KITCHEN_NUM = 1;
            model.BATH_NUM = 1;
            model.TYPE_ID = 1;
            model.MAIN_AREA = 1.00m;
            model.TOTAL_AREA = 1.00m;
            model.CARPORT = true;
            model.STATUS = "1";
            model.MAP_LATITUDE = "1";
            model.MAP_LONGITUDE = "1";
            model.CONTACT_NAME = "1";
            model.CONTACT_PHONE = "1";
            model.CONTACT_ADDR = "1";
            model.CREATE_DATE = DateTime.Today;
            model.CREATE_USER = 1;

            main.Save();

            return RedirectToAction("Index");
        }

Update.cshtml

@model CMA.Data.CMA_MASTER
@{
    ViewBag.Title = "CMA_Update";
    Layout = "~/Views/Shared/LayoutMainNew.cshtml";
}

<h2>CMA_Update</h2>

<form class="form-horizontal" action="@Url.Action("Update")" method="post">
    <div class="form-group">
        <label class="control-label col-sm-2">Name</label>
        <div class="col-sm-3">
            @Html.CMATextBoxFor(o => o.NAME)
        </div>
        <label class="control-label col-sm-2">ZipCode</label>
        <div class="col-sm-3">
            @Html.CMATextBoxFor(o => o.ZIP_CODE)
        </div>

    </div>
    <div class="form-group">
        <div class="col-sm-2">
            <button type="submit" class="btn btn-default">儲存</button>
            <button type="button" class="btn btn-primary" onclick="location.href='@Url.Action("CMA")'">返回</button>
        </div>
    </div>
</form>

UpdateController

//修改
        public ActionResult Update(int id)
        {
            AdapterCMARepository main = new AdapterCMARepository();
            var SingleResult = main.CMAMasterRepository.GetSingle(o => o.ID == id);
            return View(SingleResult);
        }

        [HttpPost]
        public ActionResult Update(CMA_MASTER model)
        {
            AdapterCMARepository main = new AdapterCMARepository();
            var item = main.CMAMasterRepository.GetSingle(o => o.ID == model.ID);
            item.NAME = model.NAME;
            item.ZIP_CODE = model.ZIP_CODE;

            main.Save();

            return RedirectToAction("Index");
        }

DeleteController

//刪除
        public ActionResult Delete(int id)
        {
            AdapterCMARepository main = new AdapterCMARepository();

            main.CMAMasterRepository.DeleteByPKey(id);

            main.Save();

            return RedirectToAction("Index");
            //}
        }

results for ""

    No results matching ""