Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

MVC3 - How to correctly use @html.checkbox?

I'm new to MVC3 and I can't figure out how to use checkboxes in MVC. I have a bunch of text in my view like

text1
text2
text3
text4
text5

submitbutton

This text is not related to any model its just plain text. I would like to place a checkbox for each item and a link it to the controller so that when a user selects some of the checkbox values and clicks on the submit button my controller picks up which items have been selected. I tried using @html.checkbox("text"+ index) and tried the controller to be

[HttpPost]
public ActionResult controller(List<string> list)
{
}

But that doesn't pick up the list of selected items. Can you tell me what i'm doing wrong or another way to do it?

like image 948
user972616 Avatar asked Dec 10 '22 01:12

user972616


1 Answers

What i would do in this situation is to make those items to be a property of my ViewModel.

public class MyViewModel
{
  public bool text1  { set;get}
  public bool text2 { set;get;}
  public bool SomeMeaningFullName { set;get;}
  // Other properties for the view
}

and in my Get Action method i will return this ViewModel to my View

public ActionResult Edit()
{
  MyViewModel objVM=new MyViewModel();
  return View(objVM);
}

and in my View

@model MyViewModel

@using (Html.BeginForm("Edit","yourcontroller"))
{
  @Html.LabelFor(Model.text1)
  @Html.CheckBoxFor(Model.text1)
  @Html.LabelFor(Model.text2)
  @Html.CheckBoxFor(Model.text2)

  <input type="submit" value="Save" />
}

Now this property value will be available in your post action method

[HttpPost]
public ActionResult Edit(MyViewModel objVM)
{
 //Here you can access the properties of objVM and do whatever

}
like image 136
Shyju Avatar answered Dec 22 '22 19:12

Shyju