Вы можете передать ViewBag.status
из метода Get
для управления отображением ввода, когда вы нажимаете кнопку, передаете текущие данные формы и значение ViewBag.status
в контроллер, изменяете значение ViewBag.status
и вернуть данные для просмотра.
1. Get
action:
public IActionResult Create()
{
ViewBag.status= "InActive";
return View();
}
2.Создать представление:
<form asp-action="Create">
<div class="form-group">
<label asp-for="FirstName" class="control-label"></label>
<input type="hidden" value="@ViewBag.status" name="status" />
@if (ViewBag.status == "InActive")
{
<input asp-for="FirstName" class="form-control" disabled/>
}
else
{
<input asp-for="FirstName" class="form-control"/>
}
<span asp-validation-for="FirstName" class="text-danger"></span>
</div>
<div class="form-group">
<input type="submit" value="EnableInput" class="btn btn-primary" />
</div>
<div class="form-group">
<input type="submit" value="Create" class="btn btn-primary" />
</div>
</form>
3.Post Action:
// more details see http://go.microsoft.com/fwlink/?LinkId=317598.
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Create([Bind("Id,LastName,FirstName,Address")] Student student)
{
var status = Request.Form["status"].ToString();
if (status == "InActive")
{
ViewBag.status = "Active";
return View(student);
}
//...
}