Помощники HTML в представлении пусты после сообщения - PullRequest
0 голосов
/ 03 апреля 2019

HTML-хелперы пусты после передачи модели со значениями в представлении

Значения текстового поля пусты после возврата модели для просмотра.

@model GSG.Tools.Models.EmailTemplateViewModel
@using (Html.BeginForm("EmailTemplate", "Admin", FormMethod.Post))
    {
        @Html.ValidationSummary(true, "", new { @class = "text-danger" })
<table class="table" style="width:100%;">
<tr>
                    <td>
                        @Html.LabelFor(m => m.From)
                        <span style="color:red;">*</span>
                    </td>
                    <td>
                        @Html.TextBoxFor(m => m.From, new { @class = "form-control", @id = "txtFrom" })
                        @Html.ValidationMessageFor(m => m.From, "", new { @class = "text-danger" })
                    </td>
                    <td>@Html.LabelFor(m => m.To)</td>
                    <td>
                        @Html.TextBoxFor(m => m.To, new { @class = "form-control", @id = "txtTo" })
                    </td>
                </tr>
</table>
[HttpPost]
        public IActionResult EmailTemplate(EmailTemplateViewModel model)
        {
            if (!ModelState.IsValid)
            {
**My Code
return View(model);
            }

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

метод [HttpPost] предназначен для отправки формы.Когда вы откроете URL, у вас будет метод [HttpGet]

[HttpGet]
public IActionResult EmailTemplate()
{
    EmailTemplateViewModel model = new EmailTemplateViewModel();
    //Load Data here    
    return View(model);       
}

Другой случай, может быть, вы пытаетесь отправить форму и заполнить данные в запросе на публикацию?Тогда ваше состояние становится недействительным.

[HttpPost]
public IActionResult EmailTemplate(EmailTemplateViewModel model)
{
     if (!ModelState.IsValid)
     {
          **My Code
          return View(model);
      }
      else 
      {
           //populate data here too.
          return View(model);
      }
 }
0 голосов
/ 03 апреля 2019

уточните, пожалуйста, свой вопрос, так как не ясно, является ли текстовое поле пустым после отправки формы или до отправки формы. Ваш метод обозначен как почтовый метод, поэтому он должен использоваться для отправки формы. Должен быть другой метод для отображения вида.

Например, это метод отображения вида для редактирования / отображения.

    [HttpGet]
    public IActionResult EmailTemplate()
    {
        EmailTemplateViewModel model = new EmailTemplateViewModel();

        **Your Code to fetch the data from the database.

        return View(model);
    }

Теперь обратите внимание: всякий раз, когда вы отправляете форму, и если тогда может произойти какая-либо ошибка проверки, она ничего не вернет в вашем случае только потому, что вы вернули представление внутри условия if. Если вы хотите отобразить данные, даже если проверка запускается, пожалуйста, верните представление за пределами условия if.

Например,

  [HttpPost]
    public IActionResult EmailTemplate(EmailTemplateViewModel model)
    {
        if (!ModelState.IsValid)
        {
         **My Code

        }
           return View(model);
    }
...