1
0
mirror of https://github.com/rudollee/LearningMVC.git synced 2026-08-11 16:32:55 +00:00

Ch. 23 URL and Ajax Helper Methods

This commit is contained in:
wook
2017-04-18 03:33:17 +09:00
parent dabe7ab03e
commit 696951de89
18 changed files with 21654 additions and 0 deletions
@@ -0,0 +1,65 @@
@using HelperMethods.Models
@model string
@{
ViewBag.Title = "GetPeople";
Layout = "/Views/Shared/_Layout.cshtml";
AjaxOptions ajaxOpts = new AjaxOptions {
UpdateTargetId = "tableBody",
Url = Url.Action("GetPeopleData"),
LoadingElementId = "loading",
LoadingElementDuration = 1000
//Confirm = "Do you wish to request new data?"
};
}
<script type="text/javascript">
function processData(data) {
var target = $("#tableBody");
target.empty();
for (var i = 0; i < data.length; i++) {
var person = data[i];
target.append("<tr><td>" + person.FirstName + "</td><td>" + person.LastName + "</td><td>" + person.Role + "</td></tr>");
}
}
</script>
<h2>GetPeople</h2>
<div id="loading" class="load" style="display: none;">
<p>Loading Data...</p>
</div>
<table>
<thead><tr><th>First</th><th>Last</th><th>Role</th></tr></thead>
<tbody id="tableBody">
@*@foreach (Person p in Model)
{
<tr>
<td>@p.FirstName</td>
<td>@p.LastName</td>
<td>@p.Role</td>
</tr>
}*@
@Html.Action("GetPeopleData", new { selectedRole = Model})
</tbody>
</table>
@using (Ajax.BeginForm("GetPeopleData", ajaxOpts))
{
<div>
@Html.DropDownList("selectedRole", new SelectList( new[] { "All" }.Concat(Enum.GetNames(typeof(Role)))))
<button type="submit">Submit</button>
</div>
}
<div>
@foreach (string role in Enum.GetNames(typeof(Role)))
{
<div class="ajaxLink">
@Ajax.ActionLink(role, "GetPeopleData",
new { selectedRole = role },
new AjaxOptions { UpdateTargetId = "tableBody", Url = Url.Action("GetPeopleData", new { SelectedRole = role }), OnSuccess = "processData"})
</div>
}
</div>
@@ -0,0 +1,12 @@
@using HelperMethods.Models
@model IEnumerable<Person>
@foreach (Person p in Model)
{
<tr>
<td>@p.FirstName</td>
<td>@p.LastName</td>
<td>@p.Role</td>
</tr>
}
+37
View File
@@ -0,0 +1,37 @@
@{
ViewBag.Title = "Index";
Layout = "/Views/Shared/_Layout.cshtml";
}
<h2>Basic Links</h2>
<table>
<thead><tr><th>Helper</th><th>Output</th></tr></thead>
<tbody>
<tr>
<td>Url.Content("~/Content/Site.css")</td>
<td>@Url.Content("~/Content/Site.css")</td>
</tr>
<tr>
<td>Html.ActionLink("My Link", "Index", "Home")</td>
<td>@Html.ActionLink("My Link", "Index", "Home")</td>
</tr>
<tr>
<td>Url.Action("GetPeople", "People")</td>
<td>@Url.Action("GetPeople", "People")</td>
</tr>
<tr>
<td>Url.RouteUrl(new { controller = "People", action = "Getpeople" })</td>
<td>@Url.RouteUrl(new { controller = "People", action = "Getpeople" })</td>
</tr>
<tr>
<td>Html.RouteLink("My Link", new { Controller = "Poeple", action = "GetPeople" })</td>
<td>@Html.RouteLink("My Link", new { Controller = "Poeple", action = "GetPeople" })</td>
</tr>
<tr>
<td>Html.RouteLink("My Link", "FormRoute", new { controller = "People", action = "GetPeople" })</td>
<td>@Html.RouteLink("My Link", "FormRoute", new { controller = "People", action = "GetPeople" })</td>
</tr>
</tbody>
</table>