Деактивировать текстовое поле при загрузке и - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть входной asp-для тега помощника. Я хочу деактивировать его, когда контроллер загружает страницу (используя свойство внутри, без использования javascript), а также иметь возможность активировать его, снова установив свойство без использования идентификатора, это возможно?

<div class="form-group">
                <label asp-for="Dn" class="control-label"></label>
                <input asp-for="Dn" class="form-control" />
                <span asp-validation-for="Dn" class="text-danger"></span>
            </div>

1 Ответ

1 голос
/ 01 октября 2019

Вы можете передать 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);
        }
        //...
    }
...