
先引入查詢的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");
}