2017-02-25 49 views
0

メソッドグループを匿名型プロパティに割り当てることはできません。ここにコードスニペットがあります。メソッドグループを匿名型プロパティに割り当てることができません。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> 

"new {id = klone.Id}"は問題が発生した場所です。 klone.Idは、kloneRepository.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; } 
} 

}

これはIdKloneクラスのフィールドであるため、klone.csクラスが

+0

ここには何か問題があります。 「クローン」はどのように見えるのですか? – DavidG

+0

はKlone.csを追加しました:) –

+0

あなたはコントローラ名がどこにあるべきか匿名タイプがあると思います。 – Crowcoder

答えて

0

私はanswer by @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 
1

のように見えるものです。それを公共の財産に変換する必要があります。

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

} 

使用しているHtml.ActionLinkヘルパーメソッドのオーバーロードは、ルートのパラメータで構成されているオブジェクトを期待しています。ここでは、オブジェクトのプロパティを使用してパラメータを作成する必要があります。

+1

ありがとうShyju、それは働いた:) –

+0

実際に。これは正しくありません。私がそれを財産にすることは良い習慣であることに同意しますが、フィールドを一般公開するだけです。 'internal'プロパティについてはエラーが発生することに注意してください。 – DavidG

関連する問題