मान्य तरीका है:
disabled="disabled"
ब्राउज़र भी स्वीकार कर सकते हैं disabled=""
लेकिन मैं आपको पहले दृष्टिकोण की सिफारिश करूंगा।
अब यह कहा जा रहा है कि मैं आपको कस्टम HTML सहायक को लिखने की सलाह दूंगा ताकि इस अक्षम कार्यक्षमता को पुन: प्रयोग करने योग्य कोड में कूटबद्ध किया जा सके:
using System;
using System.Linq.Expressions;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Html;
using System.Web.Routing;
public static class HtmlExtensions
{
public static IHtmlString MyTextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
object htmlAttributes,
bool disabled
)
{
var attributes = new RouteValueDictionary(htmlAttributes);
if (disabled)
{
attributes["disabled"] = "disabled";
}
return htmlHelper.TextBoxFor(expression, attributes);
}
}
जो आप इस तरह उपयोग कर सकते हैं:
@Html.MyTextBoxFor(
model => model.ExpireDate,
new {
style = "width: 70px;",
maxlength = "10",
id = "expire-date"
},
Model.ExpireDate == null
)
और आप इस सहायक में और भी बुद्धिमत्ता ला सकते हैं :
public static class HtmlExtensions
{
public static IHtmlString MyTextBoxFor<TModel, TProperty>(
this HtmlHelper<TModel> htmlHelper,
Expression<Func<TModel, TProperty>> expression,
object htmlAttributes
)
{
var attributes = new RouteValueDictionary(htmlAttributes);
var metaData = ModelMetadata.FromLambdaExpression(expression, htmlHelper.ViewData);
if (metaData.Model == null)
{
attributes["disabled"] = "disabled";
}
return htmlHelper.TextBoxFor(expression, attributes);
}
}
ताकि अब आपको अक्षम स्थिति निर्दिष्ट करने की आवश्यकता न हो:
@Html.MyTextBoxFor(
model => model.ExpireDate,
new {
style = "width: 70px;",
maxlength = "10",
id = "expire-date"
}
)