在视图中传递带有值的模型后,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);
}
答案 0 :(得分:0)
请澄清您的问题,因为尚不清楚在提交表单之后还是提交表单之前,文本框是否为空。您的方法被指定为post方法,因此应该用于提交表单。应该有另一种显示视图的方法。
例如,这是一种显示视图以进行编辑/显示的方法。
[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);
}
答案 1 :(得分:0)
[HttpPost]方法用于提交表单。当您打开网址时,您将有一个[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);
}
}