Can't seem to get to bind to model

3 posts, 0 answers
  1. Lee
    Lee avatar
    10 posts
    Member since:
    Jan 2013

    Posted 28 Mar 2014 Link to this post

    I am admittedly new to MVC and this may be something very simple that I am missing, but I am at a complete loss as to what else to do other than post here.  I have a model with a basic property called height:

    public class BasicInformation
    {
            [Display(Description = "Patient's height", Name = "Height (Inches):")]
            [Required(AllowEmptyStrings = false, ErrorMessage = "Height requires a value to be entered.")]
            [Range(12, 96)]
            public double Height { get; set; }
    }


    I am creating a new basic information and passing to the view when I call the view:
    BasicInformation bi = new BasicInformation();
      
    return View("Step2", bi);


    Now in my view I am binding to this model using:

    @(Html.Kendo().NumericTextBoxFor<double>(model => model.Height)
    .Name("txtHeight")
    .Decimals(0)
    .Format("##")
    )

    My problem is that when I pass the model object to my next method, the value for height has not been updated.  The min & max seems to be working based on the range attribute from the model so it seems as though that part is connected properly.  Also if I use the basic html controls (see below) then it works fine.

    @Html.EditorFor(model => model.Height)

    Please explain what I am doing wrong or have not set on the Telerik control to have it save the value on the model.

    Thanks in advance,
    Lee 
  2. Lee
    Lee avatar
    10 posts
    Member since:
    Jan 2013

    Posted 28 Mar 2014 in reply to Lee Link to this post

    The more I am using the telerik controls I realize I am having the same issue with all of them.  Please help!!!!
  3. Kendo UI is VS 2017 Ready
  4. Daniel
    Admin
    Daniel avatar
    2117 posts

    Posted 01 Apr 2014 Link to this post

    Hello Lee,

    The value will not be bound because the input name is overridden with the Name method. You should remove the Name method in this case:
    @(Html.Kendo().NumericTextBoxFor<double>(model => model.Height)
        .Decimals(0)
        .Format("##")
    )
    The correct name will automatically be generated based on the expression when using the NumericTextBoxFor helper. The same problem will occur for the other input widgets if the Name is set a different value than the property name.

    Regards,
    Daniel
    Telerik
     
    Join us on our journey to create the world's most complete HTML 5 UI Framework - download Kendo UI now!
     
Back to Top