Я новичок в ASP.net MVC и Razor.Как получить доступ к выбранному значению в списке asp.net mvc?
Я хочу сохранить дату рождения пользователя, используя раскрывающийся список, но я не знаю, как получить доступ к выбранному значению в контроллере. Я использовал TextBoxFor
, прежде чем это не подходит для получения даты от пользователя. Я прочитал много подобных вопросов, но я не понял.
часть моего Register.cshtml:
<div class="form-group">
<label class="label">BirthDate</label>
<div class="col-md-10">
@Html.TextBoxFor(model => model.UserBirthDate)
@Html.ValidationMessageFor(model => model.UserBirthDate)
<select name="Year">
<option value="2000">2000</option>
<option value="2001">2001</option>
<option value="2002">2002</option>
<option value="2003">2003</option>
<option value="2004">2004</option>
<option value="2005">2005</option>
<option value="2006">2006</option>
</select>
<select name="Month">
<option value="7">July</option>
<option value="9">September</option>
<option value="12">December</option>
</select>
<select name="Day">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
</select>
</div>
</div>
часть моего контроллера:
[HttpPost]
public ActionResult Register(User user)
{
UserRepositories bluser = new UserRepositories();
if (ModelState.IsValid)
{
if(user.UserBirthDate != null)
{
/////
}
if (bluser.Add(user))
{
return MessageBox.Show("Succsess", MessageType.Success);
}
else
{
return MessageBox.Show(" UNSuccsess", MessageType.Error);
}
}
else
{
return MessageBox.Show(ModelState.GetErrors(), MessageType.Warning);
}
}
пользователя модель:
public partial class User
{
public int UserID { get; set; }
public string UserEmail { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
public string UserPassWord { get; set; }
public string UserCellPhone { get; set; }
public string UserTell { get; set; }
public string UserImage { get; set; }
public string UserAddress { get; set; }
public Nullable<byte> UserStatus { get; set; }
public Nullable<System.DateTime> UserBirthDate { get; set; }
public string UserGender { get; set; }
}
usermetaData.cs
internal class UserMetaData
{
[ScaffoldColumn(false)]
[Bindable(false)]
public int UserID { get; set; }
public string UserEmail { get; set; }
public string UserFirstName { get; set; }
public string UserLastName { get; set; }
[DataType(DataType.Password)]
public string UserPassWord { get; set; }
public string UserCellPhone { get; set; }
public string UserTell { get; set; }
public string UserImage { get; set; }
public string UserAddress { get; set; }
public Nullable<byte> UserStatus { get; set; }
public Nullable<System.DateTime> UserBirthDate { get; set; }
public string UserGender { get; set; }
}
}
namespace NP1.Models
{
[MetadataType(typeof(NP1.Models.MetaData.UserMetaData))]
public partial class User
{
public string UserConfirmPassWord { get; set; }
public string Year { get; set; }
public string Month { get; set; }
public string Day { get; set; }
}
Текстовое поле обязательно * может * быть соответствующим, если оно используется для ввода значения даты.Между HTML5 и легкодоступными плагинами JavaScript (например, jQuery UI Datepicker), это довольно тривиально. Что касается получения этих данных в вашем контроллере, все зависит от того, как выглядит ваша модель 'User'. Согласно вашему мнению, вы ожидаете, что у него будет три свойства с именем «Год», «Месяц» и «День». Имеет ли это? Вот где эти три значения будут найдены, когда вы публикуете эту форму. – David
Я обновил свой пост @ Давид, я использовал год, месяц, день. действительно я знаю, как использовать dateTimePicker, но мне это не нравится. Я думаю, что выпадающее меню лучше –
В этом случае значения будут в этих свойствах вашей модели. Логика привязки модели структуры ASP.NET MVC соответствует размещенным именам полей с именами свойств модели. – David