Как я могу отобразить значения, отправленные из моего из в ViewModel с разными именами свойств? - PullRequest
0 голосов
/ 14 апреля 2020

В моем виде бритвы есть форма с полями ввода 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:"")], но не может использоваться на свойствах.

...