App_Code dizini altındaki bir dosyada yardımcı yöntem var. Yöntem MVC 3'te gayet iyi çalışır, ancak MVC 4'e yükseltildikten sonra olmaz. İlk @if() bloğunda başarısız oluyor ...Razor yardımcı yöntemi MVC 3'ten yükseltmeye çalıştıktan sonra çalışmaz
[Düzenle] Bu, Razor motorunda ayrıştırma hatası gibi görünüyor. Tüm nesnelerim ve özellikleri NULLER DEĞİLSE 'Nesne başvurusu bir nesnenin örneğine ayarlanmadım' hatasını alıyorum. Sanırım doğrudan Microsoft'a gitmeliyim.
[Düzenle] Hata iletisi, 'Nesne başvurusu, bir nesnenin örneğine ayarlanmadı.' Bu garip çünkü koşuldaki her nesne VE özellik geçerli ve boş değil.
@helper RenderConnectButton(System.Web.Mvc.HtmlHelper helper, ContactTwitterHandleDto contactTwitterHandle, ContactFacebookAccountDto contactFacebookAccount) {
<ul class="socialMedia inlineList">
@if (contactTwitterHandle != null && contactTwitterHandle.IsValid.HasValue && contactTwitterHandle.IsValid.Value)
{
var tHandle = "@" + contactTwitterHandle.Handle;
<li class="twitter">
<a class="btn" href="http://www.twitter.com/@contactTwitterHandle.Handle" target="_blank">
<i></i>
<span class="label">@tHandle</span>
</a>
@if(contactTwitterHandle.FollowerCount.HasValue)
{
<div class="count" id="c">
<i></i>
<u></u>
<span class="followers" title="@contactTwitterHandle.FollowerCount.Value followers">@FollowerCount(contactTwitterHandle.FollowerCount.Value)</span>
</div>
}
</li>
<script type="text/javascript">
$("#twitter").click(function() {
window.location.href = '@(helper.BuildUrlFromExpression<TenantController>(t => t.LinkTwitterAccount()))';
})
</script>
}
@if (contactFacebookAccount != null && contactFacebookAccount.IsValid.HasValue && contactFacebookAccount.IsValid.Value)
{
<li class="facebook">
<a class="btn" href="@contactFacebookAccount.Url" target="_blank">
<i></i>
<span class="label">@contactFacebookAccount.Name</span>
</a>
@if(contactFacebookAccount.FriendCount.HasValue)
{
<div class="count" id="c">
<i></i>
<u></u>
<span class="followers" title="@contactFacebookAccount.FriendCount.Value friends">@FriendCount(contactFacebookAccount.FriendCount.Value)</span>
</div>
}
</li>
}
</ul> }
[GÜNCELLEME]
Ben kodu biraz değişti ve şimdi bile yabancı. Ben çizgisinde yukarıdaki ile aynı hatayı alıyorum:var tLink = "http://www.twitter.com/" + contactTwitterHandle.Handle;
contactTwitterHandle ve contactTwitterHandle.Handle hem boş DEĞİLDİR. Ben satırından @tHandle kaldırırsanız
@helper RenderConnectButton(System.Web.Mvc.HtmlHelper helper, ContactTwitterHandleDto contactTwitterHandle, ContactFacebookAccountDto contactFacebookAccount) {
<ul class="socialMedia inlineList">
@if (contactTwitterHandle != null && contactTwitterHandle.IsValid.HasValue && contactTwitterHandle.IsValid.Value)
{
var tHandle = contactTwitterHandle.Handle;
<li class="twitter">
<a class="btn" href="http://twitter.com/@tHandle" target="_blank">
<i></i>
<span class="label">@tHandle</span>
</a>
</li>
}
</ul>
}
:
<a class="btn" href="http://twitter.com/@tHandle" target="_blank">
Bu ince ayrıştırmak olacak
@helper RenderConnectButton(System.Web.Mvc.HtmlHelper helper, ContactTwitterHandleDto contactTwitterHandle, ContactFacebookAccountDto contactFacebookAccount) {
<ul class="socialMedia inlineList">
@if (contactTwitterHandle != null && contactTwitterHandle.IsValid.HasValue && contactTwitterHandle.IsValid.Value)
{
var tHandle = "@" + contactTwitterHandle.Handle;
var tLink = "http://www.twitter.com/" + contactTwitterHandle.Handle;
<li class="twitter">
<a class="btn" href="@tLink" target="_blank">
<i></i>
<span class="label">@tHandle</span>
</a>
@if(contactTwitterHandle.FollowerCount.HasValue)
{
<div class="count" id="c">
<i></i>
<u></u>
<span class="followers" title="@contactTwitterHandle.FollowerCount.Value followers">@FollowerCount(contactTwitterHandle.FollowerCount.Value)</span>
</div>
}
</li>
<script type="text/javascript">
$("#twitter").click(function() {
window.location.href = '@(helper.BuildUrlFromExpression<TenantController>(t => t.LinkTwitterAccount()))';
})
</script>
}
@if (contactFacebookAccount != null && contactFacebookAccount.IsValid.HasValue && contactFacebookAccount.IsValid.Value)
{
<li class="facebook">
<a class="btn" href="@contactFacebookAccount.Url" target="_blank">
<i></i>
<span class="label">@contactFacebookAccount.Name</span>
</a>
@if(contactFacebookAccount.FriendCount.HasValue)
{
<div class="count" id="c">
<i></i>
<u></u>
<span class="followers" title="@contactFacebookAccount.FriendCount.Value friends">@FriendCount(contactFacebookAccount.FriendCount.Value)</span>
</div>
}
</li>
}
</ul>
}
Muhtemelen bir hata mesajıyla "başarısız" olur mu? Bu ne? –
Bu yardımcı olabilir. Yukarıdaki soruya koyacağım. – Silkster
Eh, o zaman 'contactTwitterHandle' null olduğunu görünüyor. Hata ayıklayıcınızı ateşleyin ve neden böyle olduğunu öğrenin. –