Pregunta

Estoy tratando de guardar u insertar datos en mi base de datos donde se compra mi tabla.Pero no está guardando ningún dato en mi mesa, y tampoco mostrando ningún error.Al principio, no sé por qué el botón Guardar no está haciendo clic.Aquí está mi método AJAX donde estoy publicando en controlador para guardar datos.Aquí está mi código AJAX.Por favor ayúdame ...

 $('#btnSave').click(function () {
                 var pform = $('frmpm');
                 var llink = '/Purchases/PurchaseMaster/';
                 var pm = {};
                 $.each(pform.serializeArray(), function () {
                     pm[this.name] = this.value;
                 });
                 $.ajax({
                     url: llink,
                     async: false,
                     cache: false,
                     type: 'POST',
                     data: pm,
                     success: function (data) { },
                     error: function (data) {
                         alert(data.msg);
                     }
                 });
             });

Aquí está mi controlador donde está intentando guardar datos ... no está mostrando ningún mensaje de error o éxito.

[HttpPost]
        public ActionResult PurchaseMaster(Purchase pm)
        {
            try
            {
                if (ModelState.IsValid)
                {
                    db.Insert("Purchase", "PId", pm);
                    return Json(new { msg = "Purchase has been saved Successfully." });
                }
                return Json(new { msg = "Purchase Is InValid." });
            }
            catch
            {
                return Json(new { msg = "Sorry ! Something wrong with your Purchase Master." });
            }
        }

y esta es mi vista de índice

  @using (Html.BeginForm("Index", "Purchases", FormMethod.Post, new { @id="frmpm"}))
{
    @Html.ValidationSummary(true)

    <fieldset>
        <legend>Purchase</legend>

        <div class="editor-label">
            @Html.LabelFor(model => model.PId)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PId)
            @Html.ValidationMessageFor(model => model.PId)
        </div>

        <div class="editor-label">
            @Html.Label("Purchase No")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PNo)
            @Html.ValidationMessageFor(model => model.PNo)
        </div>

        <div class="editor-label">
            @Html.Label("Purchase Date")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PDate)
            @Html.ValidationMessageFor(model => model.PDate)
        </div>

        <div class="editor-label">
            @Html.Label("SuppLier")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.SupId)
            @Html.ValidationMessageFor(model => model.SupId)
        </div>

        <div class="editor-label">
            @Html.Label("Supply Area")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.SupArea)
            @Html.ValidationMessageFor(model => model.SupArea)
        </div>

        <div class="editor-label">
            @Html.Label("Purchase Amount")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.PAmount)
            @Html.ValidationMessageFor(model => model.PAmount)
        </div>

        <div class="editor-label">
            @Html.Label("Purchase Mode")
        </div>
        <div class="editor-field">
            @Html.DropDownList("PMode")
            @Html.ValidationMessageFor(model => model.PMode)
        </div>

        <div class="editor-label">
            @Html.Label("Cheque No")
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.ChqNo)
            @Html.ValidationMessageFor(model => model.ChqNo)
        </div>

        <div class="editor-label">
            @Html.LabelFor(model => model.BankAcc)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.BankAcc)
            @Html.ValidationMessageFor(model => model.BankAcc)
        </div>
         <div id="splist" >
        </div>
        @Html.Action("Purchaseitem")
         <p>
            <input id="btnSave" type="button" value="Save" />
        </p>
    </fieldset>
}

Creo que el problema está aquí porque no está ejecutando ...

 db.Insert("Purchase", "PId", pm);

¿Fue útil?

Solución

Debe localizar con precisión dónde está el problema: en JavaScript o en el controlador.

¿Estás estableciendo puntos de interrupción en líneas:

  1. IF (ModelState.IsValid)
  2. Db.Insert ("Purchase", "PId", pm);?
  3. ¿La ejecución del código llega a estos puntos de interrupción o problema completamente en JavaScript?

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top