В моем виде бритвы есть форма с полями ввода infoName
, infoId
, ...:
<form id="studentInfo" name="studentInfo" action="..." method="POST">
<input type="text" name="infoId" id="infoId" >
<input type="text" name="infoName" id="infoName" >
@Html.AntiForgeryToken()
</form>
Мне пришлось добавить префикс info
к именам полей выше Форма, чтобы избежать столкновений в моем HTML.
У меня есть контроллер, как показано ниже:
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<ActionResult> Details(ViewModel formSubmittedViewModel)
{
return View();
}
И моя модель просмотра выглядит следующим образом:
public class ViewModel
{
[Display(Name = "Student Id")]
[JsonProperty("studentId")]
[Required(ErrorMessage = "Cannot be empty")]
public string Id{ get; set; }
[Display(Name = "Name")]
[JsonProperty("studentName")]
[Required(ErrorMessage = "Name cannot be empty")]
public string Name { get; set; }
}
Как Вы можете видеть поля в моей ViewModel и HTML форме с разными именами.
Существуют ли способы сопоставления их с тогетерами (например, что делает JsonProperty
из Json. Net)?
Я искал такие вещи, как [Bind(Prefix:"")]
, но не может использоваться на свойствах.