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