Я использую флажки и переключатели в своих формах, я могу получить все значения, кроме флажков, всегда возвращает False.
Код моей модели
public bool Gender { get; set; } //checkbox
public bool MStatus { get; set; } //radio button
public void Astudent(Student stu)
{
try
{
NpgsqlConnection con = new NpgsqlConnection(ConfigurationManager.ConnectionStrings["npg"].ConnectionString);
string stat = "";
if(stu.MStatus==true)
{
stat = "M";
}
else
{
stat = "S";
}
string gnd = "";
if (stu.Gender == true)
{
gnd = "M";
}
else
{
gnd = "F";
}
StringBuilder qry = new StringBuilder();
qry.Append("select * from fldata(");
qry.Append("(ARRAY[");
qry.Append("'(");
qry.Append(stu.Id);
qry.Append(",");
qry.Append(stu.FName);
qry.Append(",");
qry.Append(stu.LName);
qry.Append(",");
qry.Append(stu.UName);
qry.Append(",");
qry.Append(stu.Email);
qry.Append(",");
qry.Append(gnd);
qry.Append(",");
qry.Append(stat);
qry.Append(",");
qry.Append(stu.Department);
qry.Append(")'])::ful[]");
qry.Append(")");
con.Open();
NpgsqlCommand cmd = new NpgsqlCommand(qry.ToString(), con);
cmd.ExecuteNonQuery();
con.Close();
}
catch(Exception ex)
{
ex.ToString();
}
}
Код моего контроллера
public ActionResult Complex() // Add New EE / Student
{
return View();
}
[HttpPost]
public ActionResult Complex(Student stu) // Add New EE / Student
{
Student empadd = new Student();
empadd.Astudent(stu);
return RedirectToAction("ComplexView");
}
Код моего просмотра
@model postgre.Models.Student
@{
ViewBag.Title = "Complex";
Layout = "~/Views/Shared/_Layout.cshtml";
}
<h2>AddEmployee</h2>
<section class="panel-body">
@Html.ValidationSummary()
</section>
@using (Html.BeginForm())
{
<p>
First Name:
@Html.TextBoxFor(model => model.FName, new { @class = "form-control" })
</p>
<p>
Last Name:
@Html.TextBoxFor(model => model.LName, new { @class = "form-control" })
</p>
<p>
User Name:
@Html.TextBoxFor(model => model.UName, new { @class = "form-control" })
</p>
<p>
Email:
@Html.TextBoxFor(model => model.Email, new { @class = "form-control" })
</p>
<p>
Gender:<br />
@Html.CheckBoxFor(Model => Model.Gender, new { @class = "form-check-input", @name = "gender", @value = "M", @checked = true }) Male
@Html.CheckBoxFor(Model => Model.Gender, new { @class = "form-check-input", @name = "gender", @value = "F",}) Female
</p>
<p>
Marital Status:<br />
@Html.RadioButtonFor(Model => Model.MStatus, new { @class = "form-check-input", @name = "mstat", @value = "S" }) Single
@Html.RadioButtonFor(Model => Model.MStatus, new { @class = "form-check-input", @name = "mstat", @value = "M", @select = true }) Married
</p>
<p>
@Html.DropDownListFor(Model => Model.Department,
new SelectListItem[]{
new SelectListItem() {Text = "Select Your Department", Value=""},
new SelectListItem() {Text = "IT", Value="IT"},
new SelectListItem() {Text = "Management", Value="Management"},
new SelectListItem() {Text = "Commerce", Value="Commerce"}}, new {@class="form-control" })
</p>
<p><input type="submit" name="add" value="Add Employee" class="btn btn-primary" /></p>
}
Я пробовал много способов, таких как @checked="checked"
или @Checked=true
, но он не работает, когда я отправляю свои формы, он возвращает False,Как я новичок в MVC и Razor, поэтому не могу его получить.Любая помощь будет оценена.