Saya mencoba memunculkan formulir sehingga pengguna mengisinya lalu saya menyimpan catatan itu. Jika data salah, saya ingin memberi tahu pengguna tentang masalah validasi klasik.
Saya mencoba kode ini tetapi ketika model tidak valid, ia menunjukkan kesalahan tetapi secara harfiah ia hanya mengembalikan apa yang ada dalam tampilan sebagian, itu tidak memuat tata letak atau bentuk modal saya, yang saya dapatkan hanyalah halaman putih hanya dengan sebagian saya.
jadi apa yang aku lakukan salah?
Ini adalah bentuk modal saya:
Dan setelah validasi, yang saya dapatkan hanyalah ini:
Kode: Model:
public class Car
{
public int Id { get; set; }
[Required]
[StringLength(50, MinimumLength = 6)]
public string Model { get; set; }
public string Brand { get; set; }
public string Year { get; set; }
public string Color { get; set; }
}
Melihat:
<!-- Modal -->
<div class="modal fade" id="myModal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Add Car</h4>
</div>
<div class="modal-body">
@Html.Partial("CreatePartialView",new Car())
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
<button type="button" class="btn btn-primary" id="savechanges">Save changes</button>
</div>
</div><!-- /.modal-content -->
</div><!-- /.modal-dialog -->
sebagian saya:
@model ControliBootstrap.Models.Car
@using (Ajax.BeginForm("ModalAdd", "Cars",new AjaxOptions()
{
UpdateTargetId = "mymodalform"
}))
{
<div class="form-horizontal" id="mymodalform">
@Html.ValidationSummary(true)
<div class="form-group">
@Html.LabelFor(model => model.Model, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Model)
@Html.ValidationMessageFor(model => model.Model)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Brand, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Brand)
@Html.ValidationMessageFor(model => model.Brand)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Year, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Year)
@Html.ValidationMessageFor(model => model.Year)
</div>
</div>
<div class="form-group">
@Html.LabelFor(model => model.Color, new { @class = "control-label col-md-2" })
<div class="col-md-10">
@Html.EditorFor(model => model.Color)
@Html.ValidationMessageFor(model => model.Color)
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
}
dan akhirnya pengontrol saya:
public ActionResult ModalAdd(Car car)
{
if (ModelState.IsValid)
{
db.Cars.Add(car);
db.SaveChanges();
return RedirectToAction("Index");
}
return PartialView("CreatePartialView",car);
}