Validasi Formulir Modal

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:

masukkan deskripsi gambar di sini

Dan setelah validasi, yang saya dapatkan hanyalah ini:

masukkan deskripsi gambar di sini

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">&times;</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);
    }  

person bto.rdz    schedule 31.12.2013    source sumber
comment
Sudahkah Anda memasukkan jQuery AJAX yang tidak mengganggu?   -  person Rowan Freeman    schedule 31.12.2013
comment
Saya sangat tolol, terima kasih banyak karena telah memecahkan masalah   -  person bto.rdz    schedule 31.12.2013
comment
Saya akan mempostingnya sebagai jawaban untuk referensi di masa mendatang.   -  person Rowan Freeman    schedule 31.12.2013


Jawaban (1)


Jangan lupa sertakan jQuery Unobtrusive AJAX - ini adalah perpustakaan yang menjadikan normal Formulir HTML memiliki beberapa kemampuan AJAX.

person Rowan Freeman    schedule 31.12.2013
comment
Tahukah Anda mengapa panggilan ajax saya berhenti berfungsi setelah pertama kali?, jika saya menyetel ganti sebagai metode penyisipan, tombol baru saya melakukan kesalahan yang persis sama dengan yang saya alami sebelumnya, Lalu saya menyetel addafter sebagai metode penyisipan dan hanya tombol pertama yang berfungsi, semuanya orang-orang yang dimasukkan setelahnya, mengarahkan saya ke kesalahan yang saya alami sebelumnya - person bto.rdz; 31.12.2013
comment
Bagian parsial meliputi formulir. Artinya ketika terjadi penggantian, formulir ditempatkan di dalam formulir yang bukan HTML yang valid. Coba letakkan id pada div yang mengelilingi formulir. - person Rowan Freeman; 31.12.2013
comment
Tolong 1 pertanyaan lagi, di pengontrol saya ketika model tidak valid saya mendapatkan tampilan Indeks di dalam modal saya, bagaimana cara mengakhirinya? - person bto.rdz; 31.12.2013
comment
Saya tidak yakin apakah saya memahami pertanyaannya. Anda mungkin harus mengajukan pertanyaan baru. - person Rowan Freeman; 31.12.2013
comment
Oke, saya akan melakukannya, Sekali lagi terima kasih atas semua bantuan Anda - person bto.rdz; 31.12.2013