سؤال

ولدي الموقع الذي كان يستخدم ASP.Net MVC بيتا 5، ولقد ترقية فقط لASP.Net MVC 1.0. أواجه مشكلة مع العنصر المحدد في القائمة المنسدلة.

والشخص متابعة لديه سؤال مماثل (<لأ href = "https://stackoverflow.com/questions/589935/html-dropdownlist-in-asp-net-mvc-rc-refresh-not-pre-selecting- البند "> Html.DropDownList في ASP.NET MVC RC (تحديث) ليس قبل اختيار البند ) ولكن أنا ليس هناك من جواب (غير أنه قد يكون خطأ)

ولي طريقة تحكم تبدو كما يلي:

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult View(Guid id)
{
    IntegrationLogic logic = new IntegrationLogic(new IntegrationLinq());
    CompanyLogic companyLogic = new CompanyLogic(new CompanyLinq());
    IntegrationContainer container = new IntegrationContainer();

    container.Sources = logic.GetImportSource(id);
    container.Companies = companyLogic.GetCompanies(); // Returns a IList<company>
    container.SourceActions = logic.GetAllSourceActions(); // Returns an IList<SourceAction>
    container.SinkActions = logic.GetAllSinkActions();
    container.SuccessActions = logic.GetAllSuccessActions();
    container.FailureActions = logic.GetAllFailureActions();
    container.Actions = logic.GetAllActions();
    container.Watchers = logic.GetAllWatcherActions();
    container.ChainActions = logic.GetAllChainActions();

    return View("View", container);
 }

وهو كتابة الرأي بقوة ضد النموذج على النحو التالي

public partial class View : ViewPage<IntegrationContainer> {}

وتبلغ مساحة مشكلة في قالب عرض هي:

  <label for="Companies">Company: </label><%=Html.DropDownList("Companies",
                                                new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

وأنا خلق قائمة منسدلة، العنصر المحدد أبدا في الواقع يحصل مختارة - وهذه هي المشكلة. "item.CompanyID" هو ارشد "معرف" هو ارشد و "اسم" هي سلسلة على الكائن الشركة الموردة في IList الذي يقام في المقام ViewData.Model.Companies.

هل هذا الواقع علة -. أجد أنه من الصعب أن نفهم لماذا هذا لا يزال موجودا في ASP.Net MVC ... وسأكون سعيدا تماما إذا كان شيء ما فعلت

وبغض النظر، ما من شأنه أن يكون العمل المقترح حول؟

والشكر

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

المحلول

وتبين أنه إذا كان اسم التحكم الخاصة بك عبر Html.DropDownList هو نفس اسم كائن مجموعة أنه يسبب مشكلة مع ASP.Net MVC.

وحتى لو كنت تغيير التعليمات البرمجية التالية:

<label for="Companies">Company: </label><%=Html.DropDownList("Companies",
                                                new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

إلى:

<label for="Companies">Company: </label><%=Html.DropDownList("company",
                                                new SelectList(ViewData.Model.Companies, "id", "name", item.CompanyID))%>

وكل يعمل الآن. وذلك لأن اسم المجموعة على النموذج كان Model.Companies .... مجنون ... نلاحظ أيضا، أن تغيير الحالة من اسم عنصر التحكم من "الشركات" إلى "الشركات" لا يعمل إما (وهو ما يجعل بمعنى افترض).

وأتمكن من تغيير نموذج، ولكن لأن معظم أنها بنيت باستخدام ينق-إلى SQL أعتقد أنه من الأسهل لتغيير أسماء عناصر HTML.

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