データをポストしようとすると、サーバーにのみダンプがあり、ローカルシステムにはダンプがありません。いくつかの値をデータベースに提出するページがあります。私はまた、ページのドロップダウンを必須としてモデリングしました。しかし、 "Missing"のようなエラーを出すのではなく、 "Create"をクリックすると、それはダンプを投げる。MVC3 asp.netエラー:値をnullにすることはできません。パラメータ名:ドロップダウンリストの項目
ダンプトレース:
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
スタックトレース:
[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
コントローラーコード:
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);
}
ビューコード:
@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>
私はネット上で多くを検索し、ビューを返す前にサブミットアクションでプロジェクト名のビューバックを追加することを発見しました。しかし、それはできませんでした。助けてもらえますか?ボタンを作成し、私は気づいた
よろしく
素晴らしい!!!!!!!!!!!!!感謝万円!! –
De nada。 MVCを初めてお使いの方は、NerdDinnerチュートリアルが役立つかもしれません。http://www.wrox.com/WileyCDA/Section/id-321793.htmlそうでなければ、これは私が見つけた最高の本です:http://www.amazon.com/Pro-ASP-NET-MVC-Adam-Freeman/dp/1430242361。 –
その働き。エラーはちょっと誤解を招いていました。なぜなら、カスタムDTOバリデーターでは、選択リストコントロールとは何の関係もない最初の検証エラーを追加するとスローされたからです。 –