[c#] एएसपी.नेट एमवीसी हां / कोई बैंड बटन मजबूत बाउंड मॉडल एमवीसी के साथ


Answers

यदि आप एमवीसी 3 और रेजर का उपयोग कर रहे हैं तो आप निम्न का भी उपयोग कर सकते हैं:

@Html.RadioButtonFor(model => model.blah, true) Yes
@Html.RadioButtonFor(model => model.blah, false) No
Question

क्या किसी को पता है कि एएसपी.नेट एमवीसी में एक मजबूत टाइप किए गए मॉडल की बुलियन संपत्ति के लिए हाँ / नहीं रेडियो बटन कैसे बांधना है।

आदर्श

public class MyClass
{
     public bool Blah { get; set; }
}

राय

<%@  Page Title="blah"  Inherits="MyClass"%>
    <dd>
        <%= Html.RadioButton("blah", Model.blah) %> Yes
        <%= Html.RadioButton("blah", Model.blah) %> No
    </dd>

धन्यवाद

उपाय:

दिशा के लिए ब्रायन के लिए धन्यवाद लेकिन यह उन्होंने जो लिखा था उसके विपरीत था। जैसा कि -

<%@  Page Title="blah"  Inherits="MyClass"%>
<dd>
    <%= Html.RadioButton("blah", !Model.blah) %> Yes
    <%= Html.RadioButton("blah", Model.blah) %> No
</dd>



या एमवीसी 2.0:

<%= Html.RadioButtonFor(model => model.blah, true) %> Yes
<%= Html.RadioButtonFor(model => model.blah, false) %> No



बेन के जवाब से थोड़ा सा निर्माण, मैंने आईडी के लिए विशेषताओं को जोड़ा ताकि मैं लेबल का उपयोग कर सकूं।

<%: Html.Label("isBlahYes", "Yes")%><%= Html.RadioButtonFor(model => model.blah, true, new { @id = "isBlahYes" })%>
<%: Html.Label("isBlahNo", "No")%><%= Html.RadioButtonFor(model => model.blah, false, new { @id = "isBlahNo" })%>

आशा है कि ये आपकी मदद करेगा।




मैंने पैकेजिंग को एक विस्तार विधि में समाप्त कर दिया ताकि (1) मैं एक बार लेबल और रेडियो उत्पन्न कर सकता हूं और (2) इसलिए मुझे अपनी आईडी निर्दिष्ट करने के साथ झगड़ा नहीं करना पड़ा:

public static class HtmlHelperExtensions
{
    public static MvcHtmlString RadioButtonAndLabelFor<TModel, TProperty>(this HtmlHelper<TModel> self, Expression<Func<TModel, TProperty>> expression, bool value, string labelText)
    {
        // Retrieve the qualified model identifier
        string name = ExpressionHelper.GetExpressionText(expression);
        string fullName = self.ViewContext.ViewData.TemplateInfo.GetFullHtmlFieldName(name);

        // Generate the base ID
        TagBuilder tagBuilder = new TagBuilder("input");
        tagBuilder.GenerateId(fullName);
        string idAttr = tagBuilder.Attributes["id"];

        // Create an ID specific to the boolean direction
        idAttr = String.Format("{0}_{1}", idAttr, value);

        // Create the individual HTML elements, using the generated ID
        MvcHtmlString radioButton = self.RadioButtonFor(expression, value, new { id = idAttr });
        MvcHtmlString label = self.Label(idAttr, labelText);

        return new MvcHtmlString(radioButton.ToHtmlString() + label.ToHtmlString());
    }
}

उपयोग:

@Html.RadioButtonAndLabelFor(m => m.IsMarried, true, "Yes, I am married")



Links