Visualizza il messaggio di successo sulla stessa pagina quando invii

Visualizza il messaggio di successo sulla stessa pagina quando invii

Personalmente, inserirei la stringa del risultato nel ViewBag.

public ActionResult InsertDetails(FormCollection collection)
{
         //DO LOGIC TO INSERT DETAILS
         ViewBag.result = "Record Inserted Successfully!";
         return View(); 
}

Poi sulla pagina web:

<p>@ViewBag.result</p>

Ho seguenti Opzioni.

1. Usa Ajax Begin Form con AjaxOptions come di seguito

@using (Ajax.BeginForm("ActionName", "ControllerName", new { area = "AreaName" }, new
    AjaxOptions
    {
        HttpMethod = "POST",
        OnSuccess = "alert('Success');" //This will execute once the Ajax call is finished.

    }, null))
{
    <input type="submit" name="nameSubmit" value="Submit" />
}

2. Usa JQuery per impostare manualmente la richiesta XHR

$.ajax({
    url: "@Url.Action("ActionName", "ControllerName", new { area = "AreaName" });",
    type: 'POST',
    contentType: 'application/json; charset=utf-8',
    data: JSON.stringify({param : Value})
})
.done(function () { alert('Success');}) //This will execute when you request is completed.
.fail(function () { })

I miei suggerimenti

Ci sono i seguenti svantaggi durante l'utilizzo di FormCollection

Punto - 1

Nel caso FormCollection è in uso... Sarà obbligatorio Type Cast il Primitive Type Valori inutilmente perché pur ottenendo l'inserimento di un Indice specifico del System.Collections.Specialized.NameValueCollection , il valore restituito è di tipo String . Questa situazione non si verificherà in caso di View-Models fortemente tipizzato .

Problema - 2

Quando invii il modulo e vai a Post Metodo di azione e View-Model poiché il parametro esiste nel metodo Action, hai la possibilità di rispedirti i valori inviati View . In caso contrario, riscrivi il codice per rispedirlo tramite TempData/ViewData/ViewBag



Punto - 3

Abbiamo Annotazioni sui dati che possono essere implementate in View Model o Custom Validations .

ASP.Net MVC semplifica le convalide dei modelli utilizzando l'annotazione dei dati. Le annotazioni sui dati sono attributi che vengono applicati alle proprietà. Possiamo creare attributi di convalida personalizzati ereditando la classe di attributi di convalida incorporata.



Punto - 4

Esempio hai il seguente HTML

<input type="text" name="textBox1" value="harsha" customAttr1 = "MyValue" />

Domanda :Come possiamo accedere al valore di customAttr1 da quanto sopra, ad esempio dall'interno del controller

Rispondi :Quando un modulo viene inviato solo il nome e il valore degli elementi vengono inviati al server. Puoi anche utilizzare i campi nascosti per pubblicare il metodo Attributi per pubblicare un'azione .

Alternative :usa un po' di jQuery per ottenere i valori degli attributi personalizzati e pubblicali insieme ai valori del modulo nel metodo di azione

Un'altra opzione è mettere piuttosto ciò che hai nei tuoi attributi personalizzati nei controlli nascosti




Questo è il motivo, preferirei sempre usare View-Models