3

我有一个如下定义的模型。

public class Holiday
    {
        public string Name { get; set; }
        public string Description { get; set; }
        public DateTime Date { get; set; }
        public HolidayType Type { get; set; }
        public bool AllYears { get; set; }
    }
    public enum HolidayType
    {
        HOLIDAY1 = 1,
        HOLIDAY2,
        HOLIDAY3
    }

在我看来,我正在编写 html 代码而不使用 htmlhelpers(特定项目原因)。现在我的名称、描述、日期等数据被绑定到模型字段,除了单选按钮HolidayType Type

下面是查看代码。如何使用我在页面中的输入自动填充 Type 值。

@model Models.Holiday

@{
    ViewBag.Title = "Create";
}
<!DOCTYPE html>
<html>
<head>
    <title>Create Holiday</title>
    <script src="~/Content/Renderer/KendoUI/kendo.web.min.js"></script>
    <script>
        $(function () {

            $("#holiday").kendoDatePicker();
        });
    </script>
</head>
<body>
    <form id="createholiday" action="/holiday/holiday/create" method="post">
        <label for="Name">Holiday Name</label>
        <input type="text" id="name" name="Name" /><br />
        <label for="Description">Holiday Description</label>
        <input type="text" id="description" name="Description" /><br />
        <label for="Date" id="date">Date</label><br />
        <input id="holiday" name="Date"/><br />
        <label for="type">Type</label>
        <input type="radio" name="Type" value="Holiday 1">Holiday 1<br>
        <input type="radio" name="Type" value="Holiday 2">Holiday 2<br>
        <input type="radio" name="Type" value="Holiday 3">Holiday 3<br>
        <input type="submit" name="submit" value="Create" />
    </form>
</body>
</html>
4

4 回答 4

2

如果您的视图引擎是 razor,请更改 RdoBtns 的值,如下所示。我不确定,希望有效...

<input type="radio" name="Type" value="@Prj.Models.HolidayType.HOLIDAY1">Holiday 1<br>
<input type="radio" name="Type" value="@Prj.Models.HolidayType.HOLIDAY2">Holiday 2<br>
<input type="radio" name="Type" value="@Prj.Models.HolidayType.HOLIDAY3">Holiday 3<br>
于 2013-07-23T09:57:52.847 回答
2
<input type="radio" name="Gender" value="Male">Male
<input type="radio" name="Gender" value="Female">Female

在控制器中获取性别值

public ActionResult YourAction(string Gender)
{
  //Your Action Code Here
}
于 2017-05-10T18:30:37.923 回答
0

如果你想要这些东西都在你的视图中,那么循环遍历一个Type字符串值列表,如下所示:

@{foreach(var holiday in new List<string>(){"Holiday 1", "Holiday 2", "Holiday 3"})
    {
        <input type="radio" name="Type" value="@holiday" @(Model.Type == holiday ? "checked='checked'" : "")>@holiday <br>      
    }
}

通常最好通过模型传入列表,您可以像这样访问一个新属性:

@{foreach(var holiday in Model.HolidayLists) // ...etc

但正如其他人所指出的那样,在放弃 HtmlHelpers 时,您正在丢掉框架的一大块。

于 2013-07-23T09:37:25.493 回答
0

您可以通过混合使用 C# 和 jQuery 代码来实现这一点doc.ready

<script>
    $(function () {
        $("#holiday").kendoDatePicker();

        <% if(Model.Type==HolidayType.HOLIDAY1) {%>
        $('input[value=Holiday 1]').attr('checked','checked');
        <%}else if (Model.Type==HolidayType.HOLIDAY2) {%>
        $('input[value=Holiday 2]').attr('checked','checked');
        //......

    });
</script>

而且,对于文本框,

$('#name').val('<%:Model.Name%>');
$('#description').val('<%:Model.Description%>');
于 2013-07-23T07:25:40.710 回答