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:
@@ -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>
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user