1 つの簡単な質問...ユーザーが値 (オプションの値) を入力せずにフォームを送信したときに例外を処理する方法は? 実装する簡単な方法を探しています..
「オブジェクト参照がオブジェクトのインスタンスに設定されていません」のような例外が発生します。
以下は私のコントローラーです
public ActionResult GenerateReport(FormCollection Form)
{
int type_id = Convert.ToInt32(Form["type_id"].ToString());
int ClientId = Convert.ToInt32(Form["SelectedClientId"].ToString());
DateTime Start_Date = Convert.ToDateTime(Form["Start_Date"].ToString());
DateTime End_Date = Convert.ToDateTime(Form["End_Date"].ToString());
//StringBuilder sb = new StringBuilder();
// var cm = new ContractManager();
var cm = db.contracts.Where( c=>c.tb_contract_type_id == type_id ).ToList();
return View(cm);
}
以下はビューです
@using (Ajax.BeginForm("GenerateReport", "Home", new AjaxOptions { InsertionMode = InsertionMode.Replace, UpdateTargetId = "Generate-Report" }, new { id = "Form" }))
{
<div class="editor">
<div class="editor-label">
Client Name
</div>
<div id="Clients" class="editor-field">
@Html.Partial("~/Views/Contracts/SelectClient.cshtml", Model)
</div>
</div>
<div class="editor">
<div class="editor-label">
@Html.LabelFor(model => model.cmContracts.tb_contract_type_id)
</div>
<div class="editor-field">
@Html.DropDownList("type_id", ViewBag.contracttypes as SelectList, new { style = "width: 150px;" })
</div>
</div>
<div class="editor">
<div class="editor-label">
Start Date
</div>
<div class="editor-field">
@Html.TextBox("Start_Date", "", new { data_datepicker = true })
</div>
</div>
<div class="editor">
<div class="editor-label">
End Date
</div>
<div class="editor-field">
@Html.TextBox("End_Date", "", new { data_datepicker = true })
</div>
</div>
<p>
<input style="margin:20px auto 0px 120px; " type="submit" value="Generate" />
</p>
}