রেজারের সাথে এমভিসি 4 এ ড্রপডাউনলিস্ট


142

আমি DropDownListএকটি রেজার ভিউতে একটি তৈরি করার চেষ্টা করছি ।

কেউ কি আমাকে এই সাহায্য করবে?

সাধারণ এইচটিএমএল 5 কোড:

<select id="dropdowntipo">
    <option value="Exemplo1">Exemplo1</option>
    <option value="Exemplo2">Exemplo2</option>
    <option value="Exemplo3">Exemplo3</option>
</select>

আমি এটি চেষ্টা করেছি:

@{
    var listItems = new List<ListItem> { 
        new ListItem { Text = "Exemplo1", Value = "Exemplo1" }, 
        new ListItem { Text = "Exemplo2", Value = "Exemplo2" }, 
        new ListItem { Text = "Exemplo3", Value = "Exemplo3" } 
    };
}

@Html.DropDownListFor(model => 
    model.tipo, 
    new SelectList(listItems), 
    "-- Select Status --"
)

7
আপনার var listItems = ...নিয়ন্ত্রণে থাকা উচিত আপনার ভিউ নয়।
লিয়াম

1
: এই MVC3 কিন্তু এটা MVC4 হিসাবে একই বাক্য গঠন stackoverflow.com/questions/5070762/...
লিয়াম

2
@ লিয়াম: এটি সম্ভবত ভিউ মডেলের অন্তর্ভুক্ত, নিয়ামকের নয়। কন্ট্রোলারের ListItemকোনও ইউআই-বাউন্ড ধারণার উপর নির্ভরতা থাকা উচিত নয় । এটি এমনকি দেখার দৃশ্যে সত্যই হওয়া উচিত নয় । কন্ট্রোলারের ভিউ মডেলটি তৈরি করা উচিত, ভিউ মডেলটিতে ডেটা থাকা উচিত, ভিউটিতে সেই ডেটাতে ইউআই উপাদানগুলি (যেমন ListItem) তৈরি করা উচিত ।
ডেভিড

2
নেটিভ এইচটিএমএল দ্বারা রেজার ব্যবহারের মূল্য কী; এটি কর্মক্ষমতা বা কার্যকারিতা? যেহেতু নিয়ামক থেকে কোনও তথ্য টানা হচ্ছে না।
ব্যারি এমএসআইএইচ

1
কেউ দয়া করে আমাকে বলুন মডেল.টিপো সম্পত্তিটি কী সাধারণ অর্থে উপস্থাপন করে।

উত্তর:


249
@{
   List<SelectListItem> listItems= new List<SelectListItem>();
   listItems.Add(new SelectListItem
        {
          Text = "Exemplo1",
          Value = "Exemplo1"
        });
   listItems.Add(new SelectListItem
        {
            Text = "Exemplo2",
            Value = "Exemplo2",
            Selected = true
        });
   listItems.Add(new SelectListItem
        {
            Text = "Exemplo3",
            Value = "Exemplo3"
        });
}

@Html.DropDownListFor(model => model.tipo, listItems, "-- Select Status --")

2
আপনি যদি নিয়ন্ত্রকের তালিকাকে সংজ্ঞায়িত করেন, তবে আপনার এটির জন্য এটি দেখার প্রয়োজন হবে: @ এইচটিএমএল.ড্রপডাউনলিস্টফোর্ড (মডেল => মডেল।
বাশার আবু শামা

4
শেষ লাইনে - আপনি কীভাবে জানেন যে কোন মডেলটি কল করবেন? "টিপো" কোথা থেকে আসে?
আন্দ্রে

2
@ আন্ড্রে এটি মডেল সম্পত্তির নাম। তিনি প্রশ্ন থেকে এটি পড়েন। মানটি সেই ক্ষেত্রের সাথে আবদ্ধ।
হ্রভোজে টি

আপনাকে পোস্ট করা সমাধানগুলির মধ্যে কোনওরই কোনওরকম সার্ভার-সাইডের বৈধতা কার্যকর না করায় আপনাকে সতর্ক থাকতে হবে। মডেলটিতে বৈধ ডেটা পোস্ট করা হয়েছে তা নিশ্চিত করার জন্য এখানে একটি মার্জিত সমাধান যা ক্লায়েন্ট-সাইড এবং সার্ভার-সাইড বৈধতা উভয়কেই সম্পাদন করে। স্ট্যাকওভারফ্লো.com
এটিয়েন চার্ল্যান্ড

73
@{var listItems = new List<ListItem>
    {
          new ListItem { Text = "Exemplo1", Value="Exemplo1" },
          new ListItem { Text = "Exemplo2", Value="Exemplo2" },
          new ListItem { Text = "Exemplo3", Value="Exemplo3" }
    };
    }
        @Html.DropDownList("Exemplo",new SelectList(listItems,"Value","Text"))

এই উদাহরণে কাজ করার জন্য আমি এই কোড বিভাগটি উপরে ব্যবহার করে এটি যুক্ত করেছি। @ ব্যবহার করে সিস্টেম.ওয়েব.ইউআই.উইবকন্ট্রোলস;
বদর

42

আপনি এটি ব্যবহার করতে পারেন:

@Html.DropDownListFor(x => x.Tipo, new List<SelectListItem>
    {
                        new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
                        new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
                        new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}
    })  

1
"টিপো" কী?
আন্দ্রে

1
@Andre। মডেলটিতে সম্পত্তি টিপো। প্রথম পোস্ট দেখুন।
গ্যাব্রিয়েল সিমাস

1
ধন্যবাদ, যদিও এখনও সে পেয়েছে সে সম্পর্কে আমার কোনও ধারণা নেই
আন্দ্রে

22

// ViewModel

public class RegisterViewModel
{

    public RegisterViewModel()
    {
        ActionsList = new List<SelectListItem>();
    }

    public IEnumerable<SelectListItem> ActionsList { get; set; }

    public string StudentGrade { get; set; }

  }

// এনাম ক্লাস:

public enum GradeTypes
{
    A,
    B,
    C,
    D,
    E,
    F,
    G,
    H
}

// কন্ট্রোলার অ্যাকশন

 public ActionResult Student()
    {
RegisterViewModel vm = new RegisterViewModel();
IEnumerable<GradeTypes> actionTypes = Enum.GetValues(typeof(GradeTypes))
                                             .Cast<GradeTypes>();
        vm.ActionsList = from action in actionTypes
                         select new SelectListItem
                         {
                             Text = action.ToString(),
                             Value = action.ToString()
                         };
        return View(vm);
    }

// অ্যাকশন দেখুন

 <div class="form-group">
                                <label class="col-lg-2 control-label" for="hobies">Student Grade:</label>
                                <div class="col-lg-10">
                                   @Html.DropDownListFor(model => model.StudentGrade, Model.ActionsList, new { @class = "form-control" })
                                </div>

11

এখানে সবচেয়ে সহজ উত্তর:

আপনার দৃষ্টিতে কেবল যুক্ত করুন:

@Html.DropDownListFor(model => model.tipo, new SelectList(new[]{"Exemplo1",
"Exemplo2", "Exemplo3"}))

বা আপনার নিয়ামক যোগ করুন:

var exemploList= new SelectList(new[] { "Exemplo1:", "Exemplo2", "Exemplo3" });
        ViewBag.ExemploList = exemploList;

এবং আপনার দর্শন যোগ করুন:

@Html.DropDownListFor(model => model.tipo, (SelectList)ViewBag.ExemploList )

আমি জেস চ্যাডউইকের সাথে এটি শিখেছি


8

বিশ্বাস করুন আমি এটি করার জন্য অনেক অপশন চেষ্টা করেছি এবং আমার এখানে উত্তর আছে

তবে আমি সর্বদা সর্বাধিক অনুশীলন এবং ফ্রন্ট-এন্ড এবং ব্যাক-এন্ড বিকাশকারী উভয়ের পক্ষে এখনও অবধি সবচেয়ে ভালভাবে জানি for loop হ্যাঁ আমি মজা করছি না

কারণ যখন সম্মুখ-প্রান্তটি আপনাকে ডামি ডেটা সহ ইউআই পৃষ্ঠাগুলি দেয় তখন তিনি নির্দিষ্ট নির্বাচিত বিকল্পে ক্লাস এবং কিছু ইনলাইন শৈলী যুক্ত করেন যাতে এটি hard to dealব্যবহার করেHtmlHelper

এটি দেখুন:

<select class="input-lg" style="">
    <option value="0" style="color:#ccc !important;">
        Please select the membership name to be searched for
    </option>
    <option value="1">11</option>
    <option value="2">22</option>
    <option value="3">33</option>
    <option value="4">44</option>
</select>

এটি ফ্রন্ট-এন্ড বিকাশকারীর কাছ থেকে তাই লুপের জন্য সবচেয়ে ভাল সমাধানটি ব্যবহার করা

কন্ট্রোলার অ্যাকশনে (...) থেকে তুষারপাত createবা get your listডেটা এবং এটিকে ভিউমোডেল, ভিউব্যাগ বা যে কোনও কিছুতে রেখে দিন

//This returns object that contain Items and TotalCount
ViewBag.MembershipList = await _membershipAppService.GetAllMemberships();

দ্বিতীয়ত, দৃশ্যে ড্রপডাউনলিস্টটি পপুলেট করার জন্য লুপের জন্য এই সাধারণটি করুন

<select class="input-lg" name="PrerequisiteMembershipId" id="PrerequisiteMembershipId">
    <option value="" style="color:#ccc !important;">
        Please select the membership name to be searched for
    </option>
    @foreach (var item in ViewBag.MembershipList.Items)
    {
        <option value="@item.Id" @(Model.PrerequisiteMembershipId == item.Id ? "selected" : "")>
            @item.Name
        </option>
    }
</select>

এইভাবে আপনি ইউআই ডিজাইনটি ভাঙ্গবেন না, এবং এর সাধারণ, সহজ এবং আরও পঠনযোগ্য

আশা করি আপনি রেজার ব্যবহার না করলেও এটি আপনাকে সহায়তা করবে


7

তালিকা তৈরির চেয়ে অ্যারে ব্যবহার করা কিছুটা দক্ষ হবে।

@Html.DropDownListFor(x => x.Tipo, new SelectListItem[]{
                new SelectListItem() {Text = "Exemplo1", Value="Exemplo1"},
                new SelectListItem() {Text = "Exemplo2", Value="Exemplo2"},
                new SelectListItem() {Text = "Exemplo3", Value="Exemplo3"}})

6
@{
List<SelectListItem> listItems= new List<SelectListItem>();
listItems.Add(new SelectListItem
    {
      Text = "One",
      Value = "1"
    });
listItems.Add(new SelectListItem
    {
        Text = "Two",
        Value = "2",
    });
listItems.Add(new SelectListItem
    {
        Text = "Three",
        Value = "3"
    });
listItems.Add(new SelectListItem
{
   Text = "Four",
   Value = "4"
});
listItems.Add(new SelectListItem
{
   Text = "Five",
   Value = "5"
});
}
@Html.DropDownList("DDlDemo",new SelectList(listItems,"Value","Text"))

দেখুন: - এমভিসি 4 রেজার উদাহরণে ড্রপ ডাউন তালিকা তৈরি করুন


4

শুধু এটি ব্যবহার করুন

public ActionResult LoadCountries()
{
     List<SelectListItem> li = new List<SelectListItem>();
     li.Add(new SelectListItem { Text = "Select", Value = "0" });
     li.Add(new SelectListItem { Text = "India", Value = "1" });
     li.Add(new SelectListItem { Text = "Srilanka", Value = "2" });
     li.Add(new SelectListItem { Text = "China", Value = "3" });
     li.Add(new SelectListItem { Text = "Austrila", Value = "4" });
     li.Add(new SelectListItem { Text = "USA", Value = "5" });
     li.Add(new SelectListItem { Text = "UK", Value = "6" });
     ViewData["country"] = li;
     return View();
}

এবং দেখুন দেখুন নিম্নলিখিত ব্যবহার।

 @Html.DropDownList("Country", ViewData["country"] as List<SelectListItem>)

আপনি যদি ডেটাসেট থেকে ডেটা পেতে চান এবং এই তথ্যগুলিকে একটি তালিকা বাক্সে স্থাপন করতে চান তবে নীচের কোডটি ব্যবহার করুন।

List<SelectListItem> li= new List<SelectListItem>();
for (int rows = 0; rows <= ds.Tables[0].Rows.Count - 1; rows++)
{
    li.Add(new SelectListItem { Text = ds.Tables[0].Rows[rows][1].ToString(), Value = ds.Tables[0].Rows[rows][0].ToString() });
}
ViewData["FeedBack"] = li;
return View();

এবং দেখুন নিম্নলিখিত কোড লিখুন।

@Html.DropDownList("FeedBack", ViewData["FeedBack"] as List<SelectListItem>)

3

আপনি যদি এএসপিএনটি 5 (এমভিসি 6) বা তার পরে ব্যবহার করেন তবে আপনি খুব সুন্দর বাক্য গঠনের জন্য নতুন ট্যাগ হেল্পার ব্যবহার করতে পারেন :

<select asp-for="tipo">
    <option value="Exemplo1">Exemplo1</option>
    <option value="Exemplo2">Exemplo2</option>
    <option value="Exemplo3">Exemplo3</option>
</select>

আইটেমগুলি গতিশীল যেখানে আপনি একটি উদাহরণ দিতে পারেন? স্থির তালিকার জন্য ট্যাগ হেল্পার ব্যবহার করার কোনও বিন্দু নেই। এবং নির্বাচিত বিকল্পগুলির মধ্যে একটি করুন।
ব্যবহারকারী 3285954

মুল বক্তব্যটি এটি ডেটা সীমাবদ্ধ। এটি স্বয়ংক্রিয়ভাবে ভেরিয়েবলটি সেট করা বিকল্পটি নির্বাচন করে এবং ফর্মটি জমা দেওয়ার সময় এটি পরিবর্তনশীল সেট করে। আইটেমগুলিকে গতিশীল করতে, কেবল একটি রেজার ফোরচ করুন ach
ব্রায়ান কিংবদন্তি


0

List<tblstatu> status = new List<tblstatu>();
            status = psobj.getstatus();
            model.statuslist = status;
            model.statusid = status.Select(x => new SelectListItem
            {
                Value = x.StatusId.ToString(),
                Text = x.StatusName
            });


  @Html.DropDownListFor(m => m.status_id, Model.statusid, "Select", new { @class = "form-control input-xlarge required", @type = "text", @autocomplete = "off" })

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.