无法在asp.net core中绑定int类型的字段
我正在尝试将数据保存到数据库中,但我面临的问题是,字段的每个数据都与模型绑定,但整数类型字段除外,它将0绑定到这些字段 我在字段中给出值,但它将0绑定到这些值,而不是这些值 有谁能帮我解决这个问题吗 这就是我面临的问题 不具约束力的领域包括成人、儿童、老年人和旅行者无法在asp.net core中绑定int类型的字段,asp.net,asp.net-mvc,asp.net-core,razor,Asp.net,Asp.net Mvc,Asp.net Core,Razor,我正在尝试将数据保存到数据库中,但我面临的问题是,字段的每个数据都与模型绑定,但整数类型字段除外,它将0绑定到这些字段 我在字段中给出值,但它将0绑定到这些值,而不是这些值 有谁能帮我解决这个问题吗 这就是我面临的问题 不具约束力的领域包括成人、儿童、老年人和旅行者 @model Airline.Models.BookingModel @{ ViewData["Title"] = "Buy"; } <h2>Buy</h2> <h4>Booking
@model Airline.Models.BookingModel
@{
ViewData["Title"] = "Buy";
}
<h2>Buy</h2>
<h4>BookingModel</h4>
<hr />
<div class="row">
<div class="col-md-4">
<form asp-action="Buy">
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<input asp-for="FlightSkyMiles" type="hidden" value="@ViewBag.Flight.SkyMiles" />
<div class="form-group">
<label asp-for="FlightName" class="control-label"></label>
<input asp-for="FlightName" value="@ViewBag.Flight.FlightName" class="form-control" readonly />
<span asp-validation-for="FlightName" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="FlightNo" class="control-label"></label>
<input asp-for="FlightNo" value="@ViewBag.Flight.FlightNo" class="form-control" readonly />
<span asp-validation-for="FlightNo" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="OriginCity" class="control-label"></label>
<input asp-for="OriginCity" value="@ViewBag.Flight.OriginCity" class="form-control" readonly />
<span asp-validation-for="OriginCity" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="DestinationCity" class="control-label"></label>
<input asp-for="DestinationCity" value="@ViewBag.Flight.DestinationCity" class="form-control" readonly />
<span asp-validation-for="DestinationCity" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Departure" class="control-label"></label>
<input asp-for="Departure" type="datetime" value="@ViewBag.Flight.Departure" class="form-control" readonly />
<span asp-validation-for="Departure" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Adult" class="control-label"></label>
<input asp-for="Adult" type="number" name="seats" value="0" class="form-control" id="adult" />
<span asp-validation-for="Adult" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Children" class="control-label"></label>
<input asp-for="Children" type="number" name="seats" value="0" class="form-control" id="childern" />
<span asp-validation-for="Children" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Senior" class="control-label"></label>
<input asp-for="Senior" type="number" name="seats" value="0" class="form-control" id="senior" />
<span asp-validation-for="Senior" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Travelers" class="control-label"></label>
<input asp-for="Travelers" type="number" name="TotalSeats" class="form-control" id="total" readonly required />
<span asp-validation-for="Travelers" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="FlightClass" class="control-label"></label>
<select class="form-control" onchange="getPrice(@ViewBag.Flight.Id)" asp-for="FlightClass" id="fclass" asp-items="Html.GetEnumSelectList<Classtype>()" itemid="" required>
<option selected="selected" value="">Please select</option>
</select>
<span asp-validation-for="FlightClass" class="text-danger"></span>
</div>
<div class="form-group">
<label asp-for="Price" class="control-label"></label>
<input asp-for="Price" onchange="multPrice()" id="price" class="form-control" readonly />
<span asp-validation-for="Price" class="text-danger"></span>
</div>
<div class="form-group">
<input type="radio" name="Reservation" value="Buy" required /> Buy
<input type="radio" name="Reservation" value="Block" /> Block
<span asp-validation-for="ReservationType" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="Submit" class="btn btn-default" />
</div>
</form>
</div>
</div>
<div>
<a asp-action="Index">Back to List</a>
</div>
@section scripts
{
<script type="text/javascript" src="~/lib/jquery/dist/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function (e) {
function calculate() {
var adult = parseInt($("#adult").val());
var chi = parseInt($("#childern").val());
var sen = parseInt($("#senior").val());
$("#total").val(adult + chi + sen);
};
$("#adult").keyup(calculate);
$("#childern").keyup(calculate);
$("#senior").keyup(calculate);
});
</script>
}
<script>
function getPrice(id) {
function multPrice()
{
var mult = $("#total").val() * $("#price").val();
$("#price").val(mult);
}
$.ajax
({
url: '/Home/getPrice',
type: 'post',
data: { id:id,classId: $("#fclass").val()},
success: function (result) {
$("#price").val(result.price);
multPrice();
},
error: function () {
alert("Error")
}
});
}
</script>
您正在更改名称值,即name=TotalSeats-您了解HTML表单是如何工作的吗?当您有一个强类型模型用于视图时,您使用ViewBag进行所有操作有什么原因吗?我使用ViewBag是因为我从另一个模型填充了一些字段,但我不能将@model用于其他模型,这就是我使用ViewBag的原因谢谢先生的帮助这意味着名称标记可以以任何方式干扰与模型的绑定再次感谢。我已经试过了,现在它工作正常了。表单控件的name属性的值是用来提交控件值的键。您可以通过使用浏览器的开发人员工具并观察“网络”选项卡来了解这一点。