无法将方法组分配给匿名类型属性 MVC c# Visual Studios



我无法将方法组分配给匿名类型属性,这是代码片段。

@model MineKlonerApp.Models.Klone[]
@{
ViewBag.Title = "Kloner";
}
<h2>@ViewBag.Title</h2>
<div class="row">
@foreach (var klone in Model)
{
<div class="col-md-3">
<h4>@Html.ActionLink(klone.displayText, "Detail", new {id = klone.Id})</h4>
<img src="~/Images/peter-griffin-one.png"
alt="@klone.displayText"
class="img-responsive" />
</div>
}
</div>

"新{id = klone。Id})"是我有问题的地方。寂寞。正在从另一个名为 kloneRepository 的文件中收集 Id.cs

下面是该代码的示例。

private static Klone[] _klonePerson = new Klone[]
{
new Klone()
{
Id = 1,
Navn = "Peter Griffin",
Alder = 42,
Beskrivelse = "feit og dum",
}

我收到错误,我无法将其分配给匿名,是否有另一种方法可以做到这一点,或者有没有人知道如何解决这个问题并向我解释,我将不胜感激。

public class Klone
{
internal int Id;
public string Navn { get; set; }
public int Høyde { get; set; }
public string Kjønn { get; set; }
public string displayText
{
get
{
return Navn;
}
}
public string imageFile => Navn.Replace(" ", "-").ToLower() + "-" + ".jpg";
public int Alder { get; internal set; }
public string Beskrivelse { get; internal set; }
}

}

这就是KLONE.cs类的样子

因为IdKlone类的字段。您需要将其转换为公共属性。

public class Klone
{
public int Id { set; get; }
// Your other properties goes here
}

您正在使用Html.ActionLink帮助程序方法的重载需要由路由参数组成的对象。您应该在此处使用对象的属性来构建参数。

我想我会在@Shyju之前为答案添加一些额外的信息。虽然他的回答在技术上是正确的(即"使其成为公共财产"),但他关注的部分并非如此。实际上,这是一个internal领域,这是问题所在,所以您需要做的就是使其public。当然,使用不动产仍然是首选。总结一下:

internal int Id;               //Will NOT work
public int Id;                 //Will work
internal int Id { get; set; }  //Will NOT work
public int Id { get; set; }    //Will work

对于任何用谷歌搜索错误消息并最终到达此处的人,其他答案不适用于我的情况,我正在使用带有 .FirstOrDefault 函数,一旦我将其更改为 .FirstOrDefault(),错误消失了。

最新更新