2016-01-02 11 views
15

मुझे एएसपी.नेट 5 एमवीसी 6 में रेडियो बटन के लिए कोई टैग सहायक नहीं दिखता है। फॉर्म तत्वों को संभालने का सही तरीका क्या है जहां मुझे रेडियो बटन का उपयोग करने की आवश्यकता है?एएसपी.नेट 5 में रेडियो बटन टैग हेल्पर 5 एमवीसी 6

उत्तर

25

सभी इनपुट प्रकारों के लिए एक टैगहेल्पर है जिसमें रेडियो बटन प्रकार भी शामिल है। , मान लें कि आप इस

public class CreateUserVm 
{ 
    public string UserName { set; get; } 
    public IEnumerable<RoleVm> Roles { set; get; } 
    public int SelectedRole { set; get; } 
} 
public class RoleVm 
{ 
    public int Id { set; get; } 
    public string RoleName { set; get; }   
} 

की तरह और अपने GET कार्रवाई में एक दृश्य के मॉडल है

public IActionResult Index() 
{ 
    var vm = new CreateUserVm 
    { 
     Roles = new List<RoleVm> 
     { 
      new RoleVm {Id = 1, RoleName = "Admin"}, 
      new RoleVm {Id = 2, RoleName = "Editor"}, 
      new RoleVm {Id = 3, RoleName = "Reader"} 
     } 
    }; 
    return View(vm); 
} 

ध्यान में रखते हुए आप बस इनपुट टैग के लिए मार्कअप का उपयोग कर सकते हैं।

@model YourNamespaceHere.CreateUserVm 
<form asp-action="Index" asp-controller="Home"> 
    <label class="label">User name</label> 
    <div class="col-md-10"> 
     <input type="text" asp-for="UserName" /> 
    </div> 
    <label class="label">Select a Role</label> 
    <div class="col-md-10"> 
    @foreach (var item in Model.Roles) 
    { 
     <input asp-for="SelectedRole" type="radio" value="@item.Id" /> @item.RoleName 
    } 
    </div> 
    <input type="submit" /> 
</form> 

आप अपने प्रपत्र पोस्ट करते हैं, चयनित भूमिका के लिए Rold ईद SelectedRole संपत्ति में हो जाएगा

ध्यान रखें कि, ऊपर उस्तरा कोड हीId विशेषता मान इनपुट तत्व उत्पन्न होगा रखें और लूप द्वारा उत्पन्न प्रत्येक इनपुट के लिए name विशेषता मान। उपर्युक्त उदाहरण में, यह Id और name विशेषता मान SelectedRole पर सेट किए गए 3 इनपुट तत्व (रेडियो बटन प्रकार) उत्पन्न करेगा। मॉडल बाइंडिंग हमारे दृश्य मॉडल में संपत्ति नाम (SelectedRole) के साथ name विशेषता मान मिलान के रूप में काम करेगा, लेकिन डुप्लिकेट आईडी विशेषता मान आपको क्लाइंट साइड कोड (दस्तावेज़ में डुप्लिकेट आईडी अमान्य है) के साथ परेशानी दे सकती है

+0

I ' मैं फॉर्म पर सबमिट करने के लिए रेडियो बटन पर जेएस क्लिक इवेंट का उपयोग कर रहा हूं, हालांकि रेडियो से मूल्य कभी भी मेरी एक्शन विधि में नहीं जा रहा है। क्या मुझे रेडियो इनपुट पर नाम या आईडी विशेषताओं को कुछ विशिष्ट पर सेट करना है? –

+0

नाम विशेषता सेट करने से चाल –

+0

प्रश्न था: क्या मैं मान को सत्य या गलत मान सकता हूं? 'मूल्य =" true "'? –

संबंधित मुद्दे