MVC: отключить или нет для текстового поля в HTMLAttribute - PullRequest
1 голос
/ 31 марта 2011

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

это мой код:

<%= Html.TextBoxFor(model => model.test, new Dictionary<string, object> { { "disabled", ViewContext.RouteData.Values["controller"].ToString() == "MyTest" ? "" : "disabled"}}

Я видел несколько идей по этому вопросу: здесь

mvccontrib.FluentHtml или InputExtensions являются единственными решениями, чтобы ответить на мой вопрос ???

Я использую «отключено», но я могу использовать атрибут «только для чтения» ... цель этого кода - не дать пользователю заполнить текстовое поле ...

Спасибо за ваши советы по этому вопросу.

Ответы [ 4 ]

2 голосов
/ 31 марта 2011

Это хороший кандидат для пользовательского помощника HTML:

public static class HtmlExtensions
{
    public static MvcHtmlString CustomTextBoxFor<TModel, TProperty>(this HtmlHelper<TModel> htmlHelper, Expression<Func<TModel, TProperty>> ex)
    {
        var controller = htmlHelper.ViewContext.RouteData.GetRequiredString("controller");
        var htmlAttributes = new Dictionary<string, object>();
        if (string.Equals(controller, "MyTest", StringComparison.OrdinalIgnoreCase))
        {
            htmlAttributes["disabled"] = "disabled";
        }
        return htmlHelper.TextBoxFor(ex, htmlAttributes);
    }
}

и затем:

<%= Html.CustomTextBoxFor(model => model.test) %>
2 голосов
/ 31 марта 2011

Просто разбейте линию на что-то вроде этого:

<% 
if (MyConditionIsTrue) 
    Response.Write(Html.TextBoxFor(model => model.test, new { disabled = "true" }));
else 
    Response.Write(Html.TextBoxFor(model => model.test));
%>
0 голосов
/ 30 апреля 2014
disabled
or
disabled = disabled
or
disabled = true
or
disabled = false
or
disabled = enable

все вышеперечисленные средства отключены.

удалить отключено из элемента, чтобы включить это.

if(condition)
   <input .... disabled/>
else
   <input ..... />
0 голосов
/ 01 апреля 2011

Люди любят помощников по HTML, но у вас нет , чтобы их использовать.

@if (MyConditionIsTrue) {
  <input id="test" name="test" value="@Model.test" disabled="disabled" />
}
else {
  <input id="test" name="test" value="@Model.test" />
}

Если вам приходится многократно использовать эту логику, HTML-помощник, вероятно, является хорошимидея.Если вы просто делаете это один раз, это может быть не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...