MVC3 asp.net erreur: la Valeur ne peut pas être null. Nom du paramètre: articles sur dropdownlist

Je reçois une décharge dans le serveur et non pas dans mon système local lorsque vous essayez d'afficher les données. Il y a une page qui présente une certaine valeur à la base de données. J'ai aussi modélisé la liste déroulante de la page comme obligatoire. Cependant, lorsque l'on clique sur "Créer", au lieu de donner une erreur comme "Manquant"; il jette à un dépotoir.

De vidage de 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:\hosting1178048\html\fbpm\fbpm\Views\User\Create.cshtml    Line: 67 

Trace De La Pile:

[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:\hosting1178048\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

Le code du Contrôleur:

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);
}

Le code de la vue:

@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>

J'ai beaucoup cherché sur le net et trouvé que l'ajout d'un viewbag pour le nom du projet dans l'action soumettre avant de retourner à la vue owuld aider à, mais il na pas. Svp quelqu'un peut-il aider?

Ce qui concerne

OriginalL'auteur Hariprasauth Ramamoorthy | 2013-06-08