asp.net mvc - एएसपी एमवीसी 3 नियंत्रक से रेडियो बटन की जाँच की गई वस्तु सेट करें




asp.net-mvc asp.net-mvc-3 (2)

नीचे रेडियो बटन का एक समूह है जो मेरे विचार में दिखाई देता है। मैं इस साधारण कोड के माध्यम से चयनित आइटम पुनः प्राप्त करने में सक्षम हूं

string criteria = filter["criteria"];

हालांकि मुझे नहीं पता कि चुने गए आइटम को कैसे बरकरार रखा जाए। नियंत्रक को देखने के बाद वापस पोस्ट करने के बाद डिफ़ॉल्ट रेडियो बटन को हमेशा चुना जाता है।

    <form method="post">
        @Html.TextBox("searchValue", ViewBag.CurrentFilter as string, new { placeholder = "Search" })
        <input type="image" src="@Url.Content("~/Content/Images/Filter.bmp")" alt="Filter" style="padding-top: 0px;" />
            <span class="error" style="clear: both;">
                @ViewBag.ErrorMessage
           </span>
        <a href="#" style="padding-left: 30px;"></a>
        <br />
        <br />
        <input type="radio" name="criteria" id="bankName" value="bankName" checked="true"/>
        <label for="bankName">Bank Name</label>
        <input type="radio" name="criteria" id="EPURL" value="EPURL" />
        <label for="EPURL">EPURL</label>
        <input type="radio" name="criteria" id="specialNotes" value="specialNotes" />
        <label for="SpecialNotes">Special Notes</label>
        <input type="radio" name="criteria" id="email" value="email" />
        <label for="email">Email</label>
        <input type="radio" name="criteria" id="dynamicsId" value="dynamicsId" />
        <label for="dynamicsId">Dynamics ID</label>
        <input type="radio" name="criteria" id="stat" value="stat" />
        <label for="fixed">Agent ID &nbsp;</label>
    </form>

अगर मैं आपकी आवश्यकता को सही ढंग से समझता हूं तो आप उस आइटम का नाम सेट कर सकते हैं जिसे आप ViewBag (या ViewData या मॉडल) में चेक करना चाहते हैं और तदनुसार आपके दृश्य में चेक की गई संपत्ति को सेट कर सकते हैं। कुछ इस तरह:

 <form method="post">
        @Html.TextBox("searchValue", ViewBag.CurrentFilter as string, new { placeholder = "Search" })
        <input type="image" src="@Url.Content("~/Content/Images/Filter.bmp")" alt="Filter" style="padding-top: 0px;" />
            <span class="error" style="clear: both;">
                @ViewBag.ErrorMessage
           </span>
        <a href="#" style="padding-left: 30px;"></a>
        <br />
        <br />

        @{
            var checkedItemName = ViewBag.CheckedItemName;
        }
        <input type="radio" name="criteria" id="bankName" value="bankName" checked="@((checkedItemName == "bankName"))"/>
        <label for="bankName">Bank Name</label>
        <input type="radio" name="criteria" id="EPURL" value="EPURL" checked="@((checkedItemName == "EPURL"))"/>
        <label for="EPURL">EPURL</label>
        <input type="radio" name="criteria" id="specialNotes" value="specialNotes" checked="@((checkedItemName == "specialNotes"))"/>
        <label for="SpecialNotes">Special Notes</label>
        <input type="radio" name="criteria" id="email" value="email" checked="@((checkedItemName == "email"))"/>
        <label for="email">Email</label>
        <input type="radio" name="criteria" id="dynamicsId" value="dynamicsId" checked="@((checkedItemName == "dynamicsId"))"/>
        <label for="dynamicsId">Dynamics ID</label>
        <input type="radio" name="criteria" id="stat" value="stat" checked="@((checkedItemName == "stat"))"/>
        <label for="fixed">Agent ID &nbsp;</label>
    </form>

इस सवाल का जवाब अविश्वसनीय रूप से सरल हो रहा है। मैंने जो पहली गलती की थी, वह @Html नियंत्रणों का उपयोग नहीं कर रहा था। दूसरा सूचकांक नियंत्रक के लिए एक इनपुट पैरामीटर के रूप में FormCollection का उपयोग कर रहा था। रेडियो बटन को निम्नलिखित में बदल कर:

        @Html.RadioButton("criteria", "bankName", true)<span>Bank Name</span>
        @Html.RadioButton("criteria", "EPURL")<span>EPURL</span>
        @Html.RadioButton("criteria", "specialNotes")<span>Special Notes</span>
        @Html.RadioButton("criteria", "email")<span>Email</span>
        @Html.RadioButton("criteria", "dynamicsId")<span>Dynamics ID</span>
        @Html.RadioButton("criteria", "stat")<span>Agent ID</span>

और नियंत्रक में Index विधि के हस्ताक्षर इस पर:

public ActionResult Index(string criteria, string searchValue)

पोस्ट के बाद चयनित रेडियो बटन का चयन किया गया था।





postback