Dav*_*vid 10 ajax asp.net-mvc-3
我正在寻找使用c#mvc 3创建主/详细信息的示例代码.
具体来说,我试图弄清楚如何通过ajax调用局部视图的渲染.我可以将部分视图放在表单上,但是想要在用户通过ajax从选择列表中选择项目后填充它.
谢谢
Dar*_*rov 13
一如既往,您可以从模型开始:
public class MyViewModel
{
public int Id { get; set; }
public string Title { get; set; }
}
public class DetailsViewModel
{
public string Foo { get; set; }
public string Bar { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后一个控制器:
public class HomeController : Controller
{
public ActionResult Index()
{
// TODO: don't hardcode, fetch from repository
var model = Enumerable.Range(1, 10).Select(x => new MyViewModel
{
Id = x,
Title = "item " + x
});
return View(model);
}
public ActionResult Details(int id)
{
// TODO: don't hardcode, fetch from repository
var model = new DetailsViewModel
{
Foo = "foo detail " + id,
Bar = "bar detail " + id
};
return PartialView(model);
}
}
Run Code Online (Sandbox Code Playgroud)
和相应的观点.
~/Views/Home/Index.cshtml:
@model IEnumerable<MyViewModel>
<ul>
@Html.DisplayForModel()
</ul>
<div id="details"></div>
<script type="text/javascript">
$(function () {
$('.detailsLink').click(function () {
$('#details').load(this.href);
return false;
});
});
</script>
Run Code Online (Sandbox Code Playgroud)
~/Views/Home/Details.cshtml:
@model DetailsViewModel
@Model.Foo
@Model.Bar
Run Code Online (Sandbox Code Playgroud)
~/Views/Home/DisplayTemplates/MyViewModel.cshtml:
@model MyViewModel
<li>
@Html.ActionLink(Model.Title, "details", new { id = Model.Id }, new { @class = "detailsLink" })
</li>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
25168 次 |
| 最近记录: |