简体   繁体   中英

Use radio button in the Razor view?

I want to use two radio buttons to check whether the user registration type is customer or business. So for that i have coded the View.cshtml file as in
this image

But I'm getting an unexpected output. It's not displaying the radio button. showing only text instead

Here is my code:

    @model FoodieWeb.Models.UsersModel

@{
    ViewBag.Title = "UserRegister";
    Layout = "~/Views/Shared/_Layout.cshtml";
}



@using (Html.BeginForm("UserRegister", "UserRegister", FormMethod.Post, new { @class = "form-horizontal", role = "form" })) 
{
    @Html.AntiForgeryToken()

    <div class="form-horizontal">
        <h4>Register as a new Member</h4>
        <hr />
        @Html.ValidationSummary("", new { @class = "text-danger" })

        <div class="form-group">
            <label for="email" class="col-md-2 control-label">Email*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.email, new { @class = "form-control" })
                @Html.ValidationMessageFor(model => model.email)
            </div>
        </div>

        <div class="form-group">
            <label for="fname" class="col-md-2 control-label">First Name*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.fname)
                @Html.ValidationMessageFor(model => model.fname)
            </div>
        </div>

        <div class="form-group">
            <label for="lname" class="col-md-2 control-label">Last Name*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.lname)
                @Html.ValidationMessageFor(model => model.lname)
            </div>
        </div>

        <div class="form-group">
            <label for="phone" class="col-md-2 control-label">Phone*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.phone)
                @Html.ValidationMessageFor(model => model.phone)
            </div>
        </div>

        @*<div class="form-group">
                @Html.LabelFor(model => model.photo, new { @class = "col-md-2 control-label" })
                <div class="col-md-10">
                    @Html.EditorFor(model => model.photo)
                    @Html.ValidationMessageFor(model => model.photo)
                </div>
            </div>*@

        <div class="form-group">
            <label for="address" class="col-md-2 control-label">Address*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.address)
                @Html.ValidationMessageFor(model => model.address)
            </div>
        </div>

        <div class="form-group">
            <label for="city" class="col-md-2 control-label">City*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.city)
                @Html.ValidationMessageFor(model => model.city)
            </div>
        </div>

        <div class="form-group">
            <label for="postcode" class="col-md-2 control-label">Post Code*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.postcode)
                @Html.ValidationMessageFor(model => model.postcode)
            </div>
        </div>

        <div class="form-group">
            <label for="district" class="col-md-2 control-label">District*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.district)
                @Html.ValidationMessageFor(model => model.district)
            </div>
        </div>

        <div class="form-group">
            <label for="user_type" class="col-md-2 control-label">User Type*</label>
            <div class="col-md-10">
                @Html.RadioButtonFor(model => model.user_type, "Customer")
                @Html.RadioButtonFor(model => model.user_type, "Business")
                @*@Html.EditorFor(model => model.user_type)*@
                @Html.ValidationMessageFor(model => model.user_type)
            </div>
        </div>

        <div class="form-group">
            <label for="status" class="col-md-2 control-label">Status*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.status)
                @Html.ValidationMessageFor(model => model.status)
            </div>
        </div>

        <div class="form-group">
            <label for="created_date" class="col-md-2 control-label">Created Date*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.created_date)
                @Html.ValidationMessageFor(model => model.created_date)
            </div>
        </div>

        <div class="form-group">
            <label for="password" class="col-md-2 control-label">Password*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.password)
                @Html.ValidationMessageFor(model => model.password)
            </div>
        </div>

        <div class="form-group">
            <label for="confirm_password" class="col-md-2 control-label">Confirm Password*</label>
            <div class="col-md-10">
                @Html.EditorFor(model => model.confirm_password)
                @Html.ValidationMessageFor(model => model.confirm_password)
            </div>
        </div>

        <div class="form-group">
            <div class="col-md-10">
                <label>
                    <input id="agree" type="checkbox" name="agree" checked value="true" />
                    @*@Html.CheckBox("agree", true)*@

                    @*@Html.CheckBoxFor(model => model.agree)I agree to the terms and conditions.
                    @Html.ValidationMessageFor(model => model.agree)*@
                </label>
            </div>
        </div>
        <div class="form-group" style="visibility:visible">
            <div class="col-md-offset-2 col-md-10" style="visibility:visible">
                <input type="submit" class="btn btn-primary" />
            </div>
        </div>
    </div>
}

<div>
    @*@Html.ActionLink("Back to List", "Index")*@
    @Html.ActionLink("Already Registered?", "UserLogin", "UserLogin")
</div>

    enter code here

You are already using the HtmlHelper, so you could just use the radio button method.

So instead of the <input> tags you could just display:

Customer: @Html.RadioButtonFor(model => model.user_type, "Customer")
Business: @Html.RadioButtonFor(model => model.user_type, "Business")

There's more information about it here:

http://www.tutorialsteacher.com/mvc/htmlhelper-radiobutton-radiobuttonfor

All you need to do is use the HTML helper for Radio Buttons:

<div class="form-group">
    @Html.LabelFor(model => model.user_type, "Customer:", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.RadioButtonFor(model => model.user_type, "Customer")
        @Html.ValidationFor(model => model.user_type, new { @class = "text-danger" })
    </div>
</div>

<div class="form-group">
    @Html.LabelFor(model => model.user_type, "Business:", htmlAttributes: new { @class = "control-label col-md-2" })
    <div class="col-md-10">
        @Html.RadioButtonFor(model => model.user_type, "Business")
        @Html.ValidationFor(model => model.user_type, new { @class = "text-danger" })
    </div>
</div>

I hope this helps!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM