开发者

Dropdownlist using LINQ/MVC3/C# problem getting it to bind

开发者 https://www.devze.com 2023-03-20 20:16 出处:网络
I am super new to MVC3 and C#, so excuse my noob questions. I have been struggling with this for almost a full day and hope someone can shed some light (I have scoured this site for clues, hints, answ

I am super new to MVC3 and C#, so excuse my noob questions. I have been struggling with this for almost a full day and hope someone can shed some light (I have scoured this site for clues, hints, answers as well).

I have a single table in my database which will hold all the data. It is for a profile editor which will store values that the user can populate their timekeeping entry form automatically upon select. I am on step one though, trying to populate the first dropdownlist with the profile name. I am using LINQ, MVC3/ Razer, and C#.

Here is my dbml: Cant post image cause I am new

http://imageshack.us/photo/my-images/560/timem.png/

Here is my model:

namespace Timekeeping.Models
{

    public class Profile
    {
        public int Profile_ID { get; set; }
        public string profilename { get; set; }
        public string networkuserid { get; set; }
        public int projectnumber { get; set; }
        public int costcode { get; set; }
        public int paycode { get; set; }
        public int jobtype { get; set; }
        public int workorder { get; set; }
        public int activity { get; set; }
        public string taxarea { get; set; }
        public IEnumerable<Profile> profiles { get; set; }
    }



  public class ProfileViewModel
  {
      public int Profile_ID { get; set; }
      public IEnumerable<SelectListItem> profiles { get; set; }
  }
}

Here is my Controller:

namespace Timekeeping.Controllers
 public class TimeProfileController : Controller
    {


        private static String strConnString = ConfigurationManager.ConnectionStrings["timekeepingConnectionString"].ConnectionString;


        [HttpGet]
        public ActionResult ProfileSelect()
        {

            profileConnectionDataContext dataContext = new profileConnectionDataContext(strConnString);
            var model = new ProfileViewModel();
            var rsProfile = from fbs in dataContext.TimePr开发者_开发百科ofiles select fbs;

            ViewData["ProfileList"] = new SelectList(rsProfile, "Profile_ID", "profilename");
            return View(model);
        }


    }

And here are all the different html helpers I have tried for my View(none work):

 @Html.DropDownList("rsProfile", (SelectList)ViewData["ProfileList"]))

 @Html.DropDownListFor(
       x => x.Profile_ID,
       new SelectList(Model.profiles, "Values", "Text"),
       "-- Select--"
      )

  @Html.DropDownListFor(model => model.Profile_ID, Model.profilename) 

I know this is a mess to look at, but I am hoping someone can help so I can get on with the hard parts. Thanks in advance for any help I get from the community


Hope it will work surely...

Inside Controller :

var lt = from result in db.Employees select new { result.EmpId, result.EmpName };
ViewData[ "courses" ] = new SelectList( lt, "EmpId", "EmpName" );

Inside View :

<%: Html.DropDownList("courses") %>


Try this:

public class TimeProfileController : Controller
{
    private static String strConnString = ConfigurationManager.ConnectionStrings["timekeepingConnectionString"].ConnectionString;

    [HttpGet]
    public ActionResult ProfileSelect()
    {
        var dataContext = new profileConnectionDataContext(strConnString);
        var profiles = dataContext.TimeProfiles.ToArray().Select(x => new SelectListItem
        {
            Value = x.Profile_ID,
            Text = x.profilename
        });
        var model = new ProfileViewModel
        {
            profiles = profiles
        };
        return View(model);
    }
}

and in the view:

@model ProfileViewModel
@Html.DropDownListFor(
    x => x.Profile_ID,
    new SelectList(Model.profiles, "Values", "Text"),
    "-- Select--"
)


If you are using a model class just try this:

<%: Html.DropDownList("EmpId", new SelectList(Model, "EmpId", "EmpName")) %>

If you want to add click event for drop down list try this:

<%: Html.DropDownList("courses", ViewData["courses"] as SelectList, new { onchange = "redirect(this.value)" }) %>

In the above one redirect(this.value) is a JavaScript function

0

精彩评论

暂无评论...
验证码 换一张
取 消