ASP.NET MVC 4 - 部分视图和Ajax.Actionlink

时间:2012-07-31 13:56:25

标签: javascript ajax asp.net-mvc-4 partial-views

我试图在我的主页上放置一些呈现部分视图的链接 - 我想在用户点击链接时显示数据库中的一些信息:链接应该被同一页面上的文本替换。我按照教程,但我不能让它在我的项目中工作。这就是我所拥有的:

我的主页/索引视图:

<div id="NeZaman">
@Ajax.ActionLink("Ne Zaman Gelcekmiş?", "NeZaman", new AjaxOptions {
                                        UpdateTargetId="NeZaman",
                                        InsertionMode = InsertionMode.Replace,
                                        HttpMethod="GET" })
</div>

我的HomeController:

    private CaglaContext db = new CaglaContext();

    public PartialViewResult NeZaman()
    {
        var neZaman = db.Caglas.Where(c => c.Id == 1).Select(c => c.NeZamanGelcek).FirstOrDefault();
        return PartialView("_NeZaman", neZaman);
    }

我的部分视图(_NeZaman.cshtml):

    @model caglageldimi.Models.Cagla

<p>
   @Model.NeZamanGelcek
</p>

我的模特(Cagla.cs):

public class Cagla
{
    public int Id { get; set; }
    public bool GeldiMi { get; set; }
    public string NeZamanGelcek { get; set; }
    public string Nerdeymis { get; set; }
}

所以我传递的是部分视图应该使用的neZaman值,但是如何?

1 个答案:

答案 0 :(得分:4)

您已将您的patial视图模型设置为您的班级:

  

caglageldimi.Models.Cagla

但是你传递了一个字符串:

  

db.Caglas.Where(c =&gt; c.Id == 1)。选择(c =&gt; c.NeZamanGelcek).FirstOrDefault();

您的select语句只是抓取“NeZamanGelcek”字符串属性值以发送到您的局部视图。

将部分视图的模型更改为System.String应该修复它:

  

@model System.String