يوجد نموذج "HTML" ولا الاسم "في السياق الحالي في USERCONTROL MVC و C#

StackOverflow https://stackoverflow.com/questions/2326312

سؤال

أنا أستخدم Microsoft MVC و C#. لديّ usercontrol (example.ascx) تم إنشاؤه وفي الأعلى أرث System.Web.MVC.ViewUserControl<PostTransferViewModel>

الآن ، على الرغم من أن اسم النموذج الخاص بي يتم إلحاقه بـ ViewUserControl ، إلا أنني أحصل على "نموذج" النموذج غير موجود في السياق الحالي "و" اسم "HTML" غير موجود في السياق الحالي. إذا قمت بإزالة <PostTransferViewModel> من نهاية ViewuserControl ثم كل شيء يعمل بشكل جيد ، لكنني بحاجة <PostTransferViewModel>.

    <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<PostTransferViewModel>" %>

<div class="postTransferTank">
    <h2>
        Approved Post Transfers</h2>
    <% if (Model.ApprovedPostTransfers.Count() == 0)
       { %>
    <span class="emptyList">There are currently no approved Post Transfers for this tank.</span><br />
    <% } %>
    <% else
        { %>
    <%=Html.DisplayFor(x => x.ApprovedPostTransfers,"PostTransferList") %>
    <% } %>
    <br />
    <%=Html.ActionLink<PostTransferController>(x => x.NewPostTransfer(), "Enter Post Transfer", new { @class = "create-link" })%>
    <br />
    <% if (Model.DraftPostTransfers.Count() != 0)
       { %>
    <h2>
        Draft Post Transfers</h2>
    <%=Html.DisplayFor(x => x.DraftPostTransfers, "PostTransferList") %>
    <% } %>
</div>
هل كانت مفيدة؟

المحلول

منشور المنتدى هذا الحل المحتمل لمشكلتك:

في بعض الأحيان لا تظهر Intellisense aspx/ascx/master الملفات إذا كان هناك خطأ في التجميع في التطبيق. إذا حاولت تشغيل الموقع وحصلت على خطأ في التجميع من ASP.NET ، فحاول إصلاحه ثم معرفة ما إذا كان يعمل.

إذا كان التطبيق يستخدم سابقًا ASP.NET MVC Beta وقمت بتغييره لاحقًا لاستخدام الإصدار الذي تم إصداره بالكامل ، فمن المحتمل أيضًا أن تكون هناك مشكلة تكوين. حاول مقارنة ملفين web.config في المشروع (واحد في الجذر وواحد في مجلد المشاهدات) ومعرفة ما إذا كانت هناك أي اختلافات بينهما.

نصائح أخرى

كان لي نفس المشكلة...

في ملف web.config الخاص بي ، كان لدي فقط مساحات الأسماء العادية الموضوعة في العقدة ...

    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />

بمجرد أن أضفت هذا إلى عقدة بلدي ذهب الخطأ بعيدا ...

pages validateRequest="false"
    pageParserFilterType="System.Web.Mvc.ViewTypeParserFilter, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    pageBaseType="System.Web.Mvc.ViewPage, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"
    userControlBaseType="System.Web.Mvc.ViewUserControl, System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35">
  <controls>
    <add assembly="System.Web.Mvc, Version=2.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" namespace="System.Web.Mvc" tagPrefix="mvc" />
  </controls>

آمل أن يساعد هذا شخص ما. كنت عالقًا لبضع ساعات في محاولة لمعرفة ذلك.

<entityFramework>
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
  <parameters>
    <parameter value="v11.0" />
  </parameters>
</defaultConnectionFactory>

حل لهذه المشكلة

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top