سؤال

لدي عرض شخص مكتوب بقوة ، وأريد تقديم جزء في:

عرض الشخص (يكتب بقوة كشخص)

<label for="name">Name</label>
    <% Html.RenderPartial("AddressForm"); %>
</label>

عرض المعالجة (غير نمط ، لأنني أريد أيضًا استخدام هذا في العرض المكتوب بقوة)

عندما أحاول استدعاء هذا الجزئي من عرض الشخص ، أحصل على هذا الخطأ:

رسالة خطأ المترجم: CS1963: قد لا تحتوي شجرة التعبير على عملية ديناميكية

خطأ المصدر:

Line 8:    </div>  
Line 9:    <div class="editor-field">  
Line 10:       <%= Html.TextBoxFor(model => model.addressLine1) %>  
Line 11:       <%: Html.ValidationMessageFor(model => model.addressLine1) %>  
Line 12:   </div> 

كيف يمكنني الحصول على هذا الجزئي حتى أتمكن من استخدام عنوان العنوان الجزئي عبر أنواع أخرى متعددة؟

تحرير:

// GET: /Person/Create  

public ActionResult Create()  
{
    Person person = new Person();       
    return View(person);  
}  

//Person create view  
<% Html.RenderPartial("AddressForm"); %>

//AddressForm Partial
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<dynamic>" %>

<fieldset>  
    <legend>Address</legend>   
    <div class="editor-label">  
        <label for="addressLine1" class="addressLabel">Address Line 1</label>  
    </div>  
    <div class="editor-field">  
        <%= Html.TextBoxFor(model => model.addressLine1) %>  
        <%: Html.ValidationMessageFor(model => model.addressLine1) %>
    </div>
</fieldset>

الخطأ أعلاه.

هل كانت مفيدة؟

المحلول

لا يمكنك استخدام المساعدين المكتوبة بقوة باستخدام Dynamic ViewModel:

يمكنك استخدام المساعدين غير المكتوبة بقوة بدلاً من ذلك ، مثل هذا:

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

<fieldset>
<legend>Address</legend>
<div class="editor-label">
<label for="addressLine1" class="addressLabel">
Address Line 1</label>
</div>
<div class="editor-field">
<%= Html.TextBox("addressLine1") %>
<%: Html.ValidationMessage("addressLine1") %> </div>
</fieldset>

نصائح أخرى

ألا يمكنك ببساطة الاحتفاظ بجميع وجهات النظر الخاصة بك بكتابة بقوة من خلال السماح لكل من أنواع النماذج التي تريد تقديمها في عرض المعالجة الخاص بك ، وترك واجهة ، والسماح لجزئي للاستخدام تلك الواجهة كنوع طراز الخاص بها؟

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