1
簡單的繼承我有這樣的擴展方法:與MVC
public static MvcHtmlString BenefitURL(this HtmlHelper Html
, DTOBaseBenefit benefit)
{
string title = **(benefit is DTOBenefitButtonText)** ?
((DTOBenefitButtonText)benefit).ButtonText :
benefit.BenefitTitle;
if (string.IsNullOrEmpty(benefit.FileURL))
{
return Html.ActionLink(title,
"GetBenefit",
new { benefitID = benefit.BenefitID });
}
var url = new UrlHelper(HttpContext.Current.Request.RequestContext);
return Html.ActionLink(benefit.BenefitTitle,
url.Content(benefit.FileURL));
}
在視圖中我有這樣的:
@model IEnumerable<WellfareSystem.Entities.ViewModels.DTOBenefitButtonText>
.
.
.
@for (int i = 0; i < Model.Count(); i++)
{
@Html.BenefitURL(Model.Skip(i).First())
}
現在:
public class DTOBenefitButtonText : DTOBaseBenefit
{
....
}
**問:在我的分機。方法的轉換檢查(好處是DTOBenefitButtonText)返回FALSE。儘管我將DTOBenefitButtonText傳遞給該方法,但它並不適用。我究竟做錯了什麼?
如果調試到這一點,它說的是什麼類型'benefit'是什麼? (如果您添加手錶,或者在調試器中快速觀察變量)。 – CodingWithSpike 2012-01-01 18:46:54