2012-07-31 119 views
2

我想把我的主页上的一些链接呈现部分视图 - 我想在用户点击链接时显示数据库中的一些信息:链接应该被替换通过在同一页上的文字。我跟着一个教程,但我不能让它在我的项目中工作。以下是我有:ASP.NET MVC 4 - 部分视图和Ajax.Actionlink

我的家/索引视图:

<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值,该局部视图应该使用,但是如何?

+0

大气压我得到这个错误:传递到字典的模型产品类型“System.String”,但这个字典需要一个'caglageldimi.Models.Cagla'类型的模型项目。不知道如何解决这个问题。 – zerd 2012-07-31 14:04:35

回答

4

您设定(ε2)视图的模型类:

caglageldimi.Models.Cagla

但你传递的字符串:

db.Caglas.Where(c => c.Id == 1).Select(c => c.NeZamanGelcek).FirstOrDefault();

你的SELECT语句只抓住了“NeZamanGelcek”字符串属性值发送到您的部分视图。

更改您的局部视图的模型System.String应该修复它:

@model System.String