MVC3 asp.net Fehler: der Wert darf nicht null sein. Parameter-name: Elemente auf dropdownlist

Ich bin immer ein dump NUR auf dem server und nicht in meinem lokalen system, wenn Sie versuchen um die Daten zu veröffentlichen. Gibt es eine Seite, die sendet einen Wert an die Datenbank. Ich habe auch modelliert, die in der dropdown-Liste Seite als verbindlich. Jedoch, wenn Sie klicken auf "Erstellen", anstatt einen Fehler wie "Missing"; er wirft einen dump.

Dump trace:

Value cannot be null.
Parameter name: items

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ArgumentNullException: Value cannot be null.
Parameter name: items

Source Error: 


Line 65:         </div>
Line 66:         <div class="editor-field">
Line 67:             @Html.DropDownListFor(x => x.ProjectName, new SelectList(Model.ProjectDetail, "ProjectName", "ProjectName"),"")
Line 68:             <span runat="server" style="color:Red;" visible="false"> *</span>
Line 69:             @Html.ValidationMessageFor(model => model.ProjectName)

Source File: d:\hosting\11178048\html\fbpm\fbpm\Views\User\Create.cshtml    Line: 67 

Stack Trace:

[ArgumentNullException: Value cannot be null. Parameter name: items]   System.Web.Mvc.MultiSelectList..ctor(IEnumerable items, String dataValueField, String dataTextField, IEnumerable selectedValues)
+289714    System.Web.Mvc.SelectList..ctor(IEnumerable items, String dataValueField, String dataTextField) +19    ASP._Page_Views_User_Create_cshtml.Execute() in d:\hosting\11178048\html\fbpm\fbpm\Views\User\Create.cshtml:67    System.Web.WebPages.WebPageBase.ExecutePageHierarchy() +197    System.Web.Mvc.WebViewPage.ExecutePageHierarchy() +81    System.Web.WebPages.StartPage.RunPage() +17

Den Controller-code:

public ActionResult Create()
{
    var model = new UserDetail
    {
        ProjectDetail = db1.ProjectDetails.ToList()
    };
    return View(model);
} 

//
//POST: /User/Create

[HttpPost]
public ActionResult Create(UserDetail userdetail)
{
    if (ModelState.IsValid)
    {
        db.UserDetails.Add(userdetail);
        db.SaveChanges();
        return RedirectToAction("SearchCust");  
    }

    return View(userdetail);
}

Den anzeigen-code:

@model fbpm.Models.UserDetail

@{
    ViewBag.Title = "Create Customer";
}

<h2>Create Customer</h2>

<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>

@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
    <fieldset>
        <legend>Customer Detail</legend>
        <div id ="left" style="float:left; width:400px;">
        <div class="editor-label">
            @Html.LabelFor(model => model.UserID)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserID)
            <span runat="server" style="color:Red;" visible="false"> *</span>
            @Html.ValidationMessageFor(model => model.UserID)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Password)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Password)
            <span runat="server" style="color:Red;" visible="false"> *</span>
            @Html.ValidationMessageFor(model => model.Password)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.UserName)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.UserName)
            @Html.ValidationMessageFor(model => model.UserName)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.PANNo)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PANNo)
            @Html.ValidationMessageFor(model => model.PANNo)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.EmailID)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.EmailID)
            @Html.ValidationMessageFor(model => model.EmailID)
        </div>
        <br />
        <p>
            <input type="submit" value="Create Customer" />
        </p>

        </div>
        <div id = "left3" style="float:left; width:400px">
        <div class="editor-label">
            @Html.LabelFor(model => model.ProjectName)
        </div>
        <div class="editor-field">
            @Html.DropDownListFor(x => x.ProjectName, new SelectList(Model.ProjectDetail, "ProjectName", "ProjectName"),"")
            <span runat="server" style="color:Red;" visible="false"> *</span>
            @Html.ValidationMessageFor(model => model.ProjectName)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.BookedDate)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BookedDate)
            <span runat="server" style="color:Red;" visible="false"> *</span>
            @Html.ValidationMessageFor(model => model.BookedDate)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.BookedAmount)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BookedAmount)
            <span runat="server" style="color:Red;" visible="false"> *</span>
            @Html.ValidationMessageFor(model => model.BookedAmount)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Contact1)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Contact1)
            @Html.ValidationMessageFor(model => model.Contact1)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Contact2)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Contact2)
            @Html.ValidationMessageFor(model => model.Contact2)
        </div>
        </div>
        <div id="left1" style="float:left; width:400px;">
        <div class="editor-field">
            @Html.HiddenFor(model => model.Role, new { @readonly = "readonly", @Value = "400" })
            @Html.ValidationMessageFor(model => model.Role)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.FullAddress)
        </div>
        <div class="editor-field">
            @Html.TextAreaFor(model => model.FullAddress)
            @Html.ValidationMessageFor(model => model.FullAddress)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.State)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.State)
            @Html.ValidationMessageFor(model => model.State)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.Country)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Country)
            @Html.ValidationMessageFor(model => model.Country)
        </div>


        </div>

    </fieldset>
}

<div>
    @Html.ActionLink("Back to List", "SearchCust")
</div>

Ich suchte eine Menge im Netz und fand, dass das hinzufügen einer viewbag für den Namen des Projekts in der submit-Aktion vor der Rückkehr der Blick owuld helfen; aber es nicht. Bitte kann mir jemand helfen?

Hinsichtlich

InformationsquelleAutor Hariprasauth Ramamoorthy | 2013-06-08

Schreibe einen Kommentar