私の MVC 4 サイトには、1 つの db テーブルからのデータのリストを部分的に表示するダッシュボードがあります (私のデータベースは、Entity Framework コード ファースト メソッドを使用して生成されました)。表示されているデータは、注文のリストとその注文に関する情報です。現在、同じ注文に数量を追加する機能を追加しようとしています (例: この注文を 10、25、50、100 個で見積もる必要があります)。各行の編集、詳細、および削除オプションのすぐ隣には、ユーザーが別の数量を追加するための追加ボタンがあります。ただし、テストでは、数量を送信しようとすると、入力された値が完全に有効な入力であるはずなのに、入力された値が無効であるという検証エラーが発生します。なぜこれが起こっているのか理解できないので、誰か助けてください。関連するコードの一部を次に示します。
モデル:
General_Info.cs
public class General_Info
{
[Key]
public int Quote_ID { get; set; }
[DisplayFormat(DataFormatString = "{0:d}", ApplyFormatInEditMode = true)]
public DateTime Open_Quote { get; set; }
public string Customer_Name { get; set; }
public string OEM_Name { get; set; }
public int Qty { get; set; }
public string Fab_Drawing_Num { get; set; }
public string Rfq_Num { get; set; }
public string Rev_Num { get; set; }
public string Group_Number { get; set; }
public General_Info()
{
Quantitys = new HashSet<Quantity>();
Quote_Datas = new HashSet<Quote_Data>();
}
public virtual ICollection<Quantity> quantitys { get; set; }
}
数量.cs
public class Quantity
{
[Key]
public int Qty_ID { get; set; }
public string Group_Number { get; set; } // foreign key
public int quantity { get; set; }
public General_Info General_Info { get; set; }
}
ダッシュボード コントローラ:
[HttpGet]
public ActionResult AddQuantity(int Group_Num = 0)
{
return View();
}
[HttpPost]
public ActionResult AddQuantity(Quantity quantity)
{
if (ModelState.IsValid)
{
db.Quantitys.Add(quantity);
db.SaveChanges();
return RedirectToAction("Index");
}
return View(quantity);
}
AddQuantity.cshtml を表示
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)
<fieldset>
<legend>Quantity</legend>
<div class="editor-label">
@Html.LabelFor(model => model.quantity)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.quantity)
@Html.ValidationMessageFor(model => model.quantity)
</div>
<p>
<input type="submit" value="Add Qty" />
</p>
</fieldset>
}
ご覧のとおり、私のモデルでは数量は整数であり、フォームに整数を入力すると検証エラーがスローされます。
助けていただける方、よろしくお願いします。