Here is my form
<div class="row"> <div class="col-md-12 form-group"> <label asp-for="poslovnice">Odabir poslovnice</label> <select asp-for="PoslovnicaID" asp-items="Model.poslovnice" class="form-control "> <option selected disabled>Odabir poslovnice</option> </select> <span asp-validation-for="PoslovnicaID" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-6 form-group"> <label asp-for="Ime">Ime</label> <input type="text" class="form-control" asp-for="Ime"> <span asp-validation-for="Ime" class="text-danger"></span> </div> <div class="col-md-6 form-group"> <label asp-for="Prezime">Prezime</label> <input type="text" class="form-control" asp-for="Prezime"> <span asp-validation-for="Prezime" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-12 form-group"> <label asp-for="Email">Email</label> <input type="email" class="form-control" asp-for="Email"> <span asp-validation-for="Email" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-6 form-group"> <label asp-for="brojOsoba">Broj osoba</label> <select asp-for="brojOsobaID" asp-items="Model.brojOsoba" class="form-control"> <option selected disabled>Odabir</option> </select> <span asp-validation-for="brojOsobaID" class="text-danger"></span> </div> <div class="col-md-6 form-group"> <label asp-for="BrojTelefona">Telefon</label> <input type="text" class="form-control" asp-for="BrojTelefona"> <span asp-validation-for="BrojTelefona" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-6 form-group"> <label asp-for="DatumRezervacije">Datum rezervacije</label> <input type="date" class="form-control" asp-for="DatumRezervacije" onkeypress="return false;"> <span asp-validation-for="DatumRezervacije" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-6 form-group"> <label asp-for="TerminRezervacije">Termin</label> <select asp-for="TerminRezervacijeID" asp-items="Model.TerminRezervacije" class="form-control"> <option selected disabled>Termin</option> </select> <span asp-validation-for="TerminRezervacijeID" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-12 form-group"> <label asp-for="Napomena">Message</label> <textarea class="form-control" asp-for="Napomena" cols="30" rows="7"></textarea> <span asp-validation-for="Napomena" class="text-danger"></span> </div> </div> <div class="row"> <div class="col-md-12 form-group"> <input type="submit" class="btn btn-primary btn-lg btn-block" value="Reserve Now" data-save="modal"> </div> </div> </form>
my js code
<script> $("select, #DatumRezervacije").change(function () { //window.alert("aa"); $.get("/Rezervacija/RezervacijaPartial?mod=@Model", function (data) { $("#rezervacijaPlaceholder").html(data) }) })
and my controller action
public IActionResult RezervacijaPartial(RezervacijaVM mod) { RezervacijaVM model = new RezervacijaVM(); //logic return PartialView(model); }
@Model
is compiled and evaluated when the page is requested from the server. Any changes to the model on the client-side will not be reflected.
You're also trying to pass an entire object as a query parameter. You should flatten your model before passing it to your controller. So you'll have
$.get("/Rezervacija/RezervacijaPartial?poslovnice=value&Ime=value&Prezime=value&Email=value&brojOsoba=value&BrojTelefona=value&DatumRezervacije=value&TerminRezervacije=value&Napomena=value", function(data){...}
The values here you should get using JavaScript as this is already client-side operation. Consider: Flatten a javascript object to pass as querystring
Here is a whole working demo:
Model:
public class RezervacijaVM
{
public int PoslovnicaID { get; set; }
public int brojOsobaID { get; set; }
public int TerminRezervacijeID { get; set; }
public IEnumerable<SelectListItem> poslovnice { get; set; }
public IEnumerable<SelectListItem> brojOsoba { get; set; }
public IEnumerable<SelectListItem> TerminRezervacije { get; set; }
public string Ime { get; set; }
public string Prezime { get; set; }
public string Email { get; set; }
public string BrojTelefona { get; set; }
public string Napomena { get; set; }
public DateTime DatumRezervacije { get; set; }
}
View:
@model RezervacijaVM
<form id="form1">
<div class="row">
<div class="col-md-12 form-group">
<label asp-for="poslovnice">Odabir poslovnice</label>
<select asp-for="PoslovnicaID" asp-items="Model.poslovnice" class="form-control ">
<option selected disabled>Odabir poslovnice</option>
</select>
<span asp-validation-for="PoslovnicaID" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label asp-for="Ime">Ime</label>
<input type="text" class="form-control" asp-for="Ime">
<span asp-validation-for="Ime" class="text-danger"></span>
</div>
<div class="col-md-6 form-group">
<label asp-for="Prezime">Prezime</label>
<input type="text" class="form-control" asp-for="Prezime">
<span asp-validation-for="Prezime" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-12 form-group">
<label asp-for="Email">Email</label>
<input type="email" class="form-control" asp-for="Email">
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label asp-for="brojOsoba">Broj osoba</label>
<select asp-for="brojOsobaID" asp-items="Model.brojOsoba" class="form-control">
<option selected disabled>Odabir</option>
</select>
<span asp-validation-for="brojOsobaID" class="text-danger"></span>
</div>
<div class="col-md-6 form-group">
<label asp-for="BrojTelefona">Telefon</label>
<input type="text" class="form-control" asp-for="BrojTelefona">
<span asp-validation-for="BrojTelefona" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label asp-for="DatumRezervacije">Datum rezervacije</label>
<input type="date" class="form-control" asp-for="DatumRezervacije" onkeypress="return false;">
<span asp-validation-for="DatumRezervacije" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-6 form-group">
<label asp-for="TerminRezervacije">Termin</label>
<select asp-for="TerminRezervacijeID" asp-items="Model.TerminRezervacije" class="form-control">
<option selected disabled>Termin</option>
</select>
<span asp-validation-for="TerminRezervacijeID" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-12 form-group">
<label asp-for="Napomena">Message</label>
<textarea class="form-control" asp-for="Napomena" cols="30" rows="7"></textarea>
<span asp-validation-for="Napomena" class="text-danger"></span>
</div>
</div>
<div class="row">
<div class="col-md-12 form-group">
<input type="submit" class="btn btn-primary btn-lg btn-block" value="Reserve Now" data-save="modal">
</div>
</div>
</form>
JS:
@section scripts
{
@{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
<script>
$("select, #DatumRezervacije").change(function () {
var data = $("#form1").serialize();
console.log(data);
$.get("/Rezervacija/RezervacijaPartial?"+data, function (data) {
$("#rezervacijaPlaceholder").html(data)
})
})
</script>
}
Result:
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.