【发布时间】:2014-04-03 05:03:05
【问题描述】:
我有一个简单的 MVC 控制器,它使用一个函数并返回一个 CardType 列表。现在在我看来,我只是做一个简单的 foreach 循环并绘制出每个返回的 CardType,现在我在视图上有过滤器文本框,这样他们就可以输入一些文本,按 Enter 键,页面将刷新新结果。但我知道我可以使用 AJAX 来做到这一点,但我真的不知道从哪里开始或结束:)。
这是我的控制器方法
[HttpGet]
public ActionResult CardTypes(TypeSearchModel searchModel)
{
var cs = new CardService();
searchModel.CardTypes = cs.GetCardTypes(searchModel);
return View(searchModel);
}
这是我的看法
@model CardSite.Models.CardTypeSearchModel
@{
ViewBag.Title = "Card types";
}
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="navbar-collapse collapse">
<ul class="nav navbar-nav">
<li>@Html.ActionLink("Created new card type", "CreateCardType", "Card")</li>
</ul>
</div>
<div class="row">
<div class="col-md-4">
<h2>Card types</h2>
<p>
Here is the list of card types
</p>
</div>
</div>
@using (@Html.BeginForm("CardTypes", "Card", FormMethod.Get))
{
@Html.TextBoxFor(x => x.Name);
}
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(x => x.Name)
</th>
<th>
View
</th>
</tr>
@foreach (var item in Model.CardTypes)
{
<tr>
<td>
@Html.DisplayFor(m => item.Name)
</td>
<td>
<a href="/Card/CardType/@item.Id">View</a>
</td>
</tr>
}
</table>
如果有人有任何想法或教程可以帮助我,那就太好了。
---更新---
只是一个快速更新,我已将表格 cshtml 代码移动到新视图, 这是我目前的脚本
<script type="text/javascript">
$(document).ready(
$('#filter-card-types').click(function () {
var url = "Card/CardTypesTable/" + @Model.Name
$.get(url, function(data)
{
if(data)
{
$("div").find("#card-types-table").append(data);
}
})
})
);
</script>
现在这是在做一些事情,但不是正确的事情,它基本上是找到我的 div 是正确的,但是获取的数据是它所在的同一页面,所以它有点在新的 div 中重新呈现自己。知道为什么我的数据与它所在的视图相同吗?
---更新---
这是我的新 javascript 函数
$.get("@Url.Action("CardTypesTable", "Card")", { Name : '@Model.Name'}, function(data)
{
var div = $('div').find("#card-types-table");
div.empty();
alert(data);
$.each(data, function(items, item) {
div.append("Card type : " + item.Name);
});
})
这工作正常,但我遇到的问题是永远不会填充名称,即使我在我的 TextBox 中放了一些东西并单击过滤器按钮,有什么原因它没有拾取它?
【问题讨论】:
标签: jquery ajax asp.net-mvc asp.net-mvc-4