我试图为互斥的单选按钮找到正确的Razor语法,这两个按钮都反映了模型上布尔属性的值.我的模型有这个:
public bool IsFemale{ get; set; }
Run Code Online (Sandbox Code Playgroud)
我想用两个单选按钮显示它,一个是"男性",另一个是"女性",但到目前为止我尝试过的所有东西都没有反映出IsFemale
该模型属性的实际价值.目前,我有这个:
@Html.RadioButtonFor(model => model.IsFemale, !Model.IsFemale) Male
@Html.RadioButtonFor(model => model.IsFemale, Model.IsFemale) Female
Run Code Online (Sandbox Code Playgroud)
如果我更改和更新,这似乎正确地保持了值,但没有将正确的值标记为已选中.我确定这是愚蠢的,但我被卡住了.
如何将RadioButtonFor()设置为默认选中
<%=Html.RadioButtonFor(m => m.Gender,"Male")%>
Run Code Online (Sandbox Code Playgroud)
(Html.RadioButton)有出路而不是(Html.RadioButtonFor)
有任何想法吗?
有人可以提供一个如何正确使用Html.RadioButtonFor的简单示例吗?让我们说这是一个简单的场景,我的模型有一个名为Gender的字符串属性.我想显示两个单选按钮:"男性"和"女性".
在编辑视图中保留所选值的同时实现此最简洁的方法是什么?
根据我的研究,在MVC中编码复选框的正确方法如下.
@Html.CheckBoxFor(m => m.RememberMe)
@Html.LabelFor(m => m.RememberMe)
Run Code Online (Sandbox Code Playgroud)
这将呈现一个复选框,为复选框呈现标签,并使标签可单击,这意味着单击标签也会切换复选框.
但是对于单个视图模型字段有多个复选框的情况呢?(例如,也许每个复选框代表一个整数值内的位.)或者,更好的是,单选按钮怎么样,哪里总有几个选项与同一个字段相关联?
在这些情况下,上面的代码似乎存在问题.要么不是所有元素都与相同的字段相关联,要么呈现具有相同ID的多个元素.
我一直在研究这个问题.我找到了很多解决方案; 然而,它们似乎都没有可点击的标签,或者它们需要一堆自定义和/或非标准编码.有些人完全避免使用RadioButtonFor/LabelFor,而是选择编写原始HTML.
编写原始HTML很好,但是MVC的设计者没有预料到我们可能需要为同一个字段使用多个单选按钮吗?而且,如果他们这样做了,他们是如何打算编码的呢?
编辑:
在研究了这个之后,下面的代码是我发现编码单选按钮的最佳方法.这段代码假设我为每个无线电选项定义了一个枚举.
@Html.RadioButtonFor(m => m.Gender, Gender.Male, new { id = "gender-male" })
@Html.LabelFor(m => m.Gender, Gender.Male.ToString(), new { @for = "gender-male" })
@Html.RadioButtonFor(m => m.Gender, Gender.Female, new { id = "gender-female" })
@Html.LabelFor(m => m.Gender, Gender.Female.ToString(), new { @for = "gender-female" })
Run Code Online (Sandbox Code Playgroud)
也许这是我能想到的最好的,但它仍然让我感到麻烦.
为什么要对ID这样的基本内容进行如此多的定制?再一次,微软是否预计我们需要与同一领域相关联的多个单选按钮?
如果枚举名称与单选按钮标签所需的描述不同,则此方法似乎不支持字段属性,例如[Display(Name = "")]
.
(我想多个复选框的正确处理将推迟到另一个问题.)
我无法将默认单选按钮设置为"已选中"!我正在使用@ Html.RadioButtonFor:
<div id="private-user">
@Html.RadioButtonFor(m => m.UserType, "type1", new { @class="type-radio" , **@Checked="checked"** }) 1
</div>
<div id="proff-user">
@Html.RadioButtonFor(m => m.UserType, "type2", new { @class="type-radio" }) 2
</div>
Run Code Online (Sandbox Code Playgroud)
是否可以使用@ Html.RadioButtonFor设置单选按钮?
谢谢
我正在使用MVC5和Razor视图.我的viewmodel有一个类型为nullable enum的属性.我让它可以为空,这样当用户加载页面时,他们必须选择一个选项,并在他们没有选择任何内容时进行验证.
public class PaymentViewModel
{
[Required(ErrorMessage = "Please select a payment method", AllowEmptyStrings = false)]
public PaymentType? SelectedPaymentType { get; set; }
}
public enum PaymentType
{
CreditCard,
DirectDebit
}
Run Code Online (Sandbox Code Playgroud)
在我看来,我有一个表单,我正在调用提交,然后调用控制器操作作为帖子.
我的观点的相关部分如下所示:
<div class="row button-group" data-toggle="buttons">
<div class="col-xs-6">
<label class="btn btn-tertiary">
@Html.RadioButtonFor(model => model.SelectedPaymentType, PaymentType.CreditCard, new {@Name = "payment-method", @Value = "credit", @Id="rdoCredit"})
Credit Card
</label>
</div>
<div class="col-xs-6">
<label class="btn btn-tertiary">
@Html.RadioButtonFor(model => model.SelectedPaymentType, PaymentType.DirectDebit, new {@Name = "payment-method", @Value = "debit", @Id="rdoDebit"})
Direct Debit
</label>
</div>
</div> …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将使用 for 循环和 Razor 语法创建的单选按钮分组在一起。这是代码:
@for (var i = 0; i < Model.Sessions.Count(); i++)
{
@Html.HiddenFor(it => it.Sessions[i].Id)
@Html.RadioButtonFor(it => it.Sessions[i].Checkbox, "0", new {@class = "Sessions", @id = id, @name="Sessions"})
@Html.LabelFor(it => it.Sessions[i].Name, Model.Sessions[i].Name)
<span class="time-span"><em>@Model.Sessions[i].StartTime</em><em>@Model.Sessions[i].EndTime</em></span>
<br />
}
Run Code Online (Sandbox Code Playgroud)
for循环内的第三行就是问题所在。基本上名称不会改变,并且始终是“Sessions[x].Checkbox”。复选框是自定义类的属性(布尔)。我似乎无法掌握调试 Razor 内容的窍门,因此任何帮助将不胜感激,我猜这对这里的某人来说将是非常明显的。
编辑 迪米特洛夫的帖子很有帮助。下面是我使用的最终代码。我使用 @class 和 @id 属性,以便能够使用 Javascript 选择最初选择的会话(因为这是编辑,而不是创建表单)。
@for (var i = 0; i < Model.Sessions.Count(); i++)
{
@Html.HiddenFor(it => it.Sessions[i].Id)
var SId = @Model.Sessions[i].Id;
@Html.RadioButtonFor(it => it.selectedSession, Model.Sessions[i].Id, new { id = SId, @class = "Sessions" }) …
Run Code Online (Sandbox Code Playgroud) 目前我正在使用MVC asp.net开发在线申请表.
这是我的表格.
我想要的是当用户选择Individual radiobutton时,应该禁用另一个radionbutton文本字段.我成功地实现了这一点使用的jsfiddle 这里.
我做的是
1)将我创建的JSFiddle的编码复制到MVC视图中
@model Insurance.ViewModels.RegisterInfoPA
@{
ViewBag.Title = "Insert";
}
<h2>Insert Fire Insurance</h2>
<script>
$(".radioBtn").click(function () {
$("#reg_title").attr("disabled", true);
$("#reg_registerNm").attr("disabled", true); //Comp_Name//Name
$("#reg_identityNo").attr("disabled", true); //Ic_No//army//com_regis
$("#pinfo_gender").attr("disabled", true);
$("#busInfo_dateRegisCompany").attr("disabled", true);
$("#reg_dateCompRegis").attr("disabled", true); //DOB
$("#pinfo_occupation").attr("disabled", true);
$("#pinfo_maritalId").attr("disabled", true);
$("#busInfo_contactNm").attr("disabled", true);
$("#busInfo_natureBusiness").attr("disabled", true);
if ($("input[name=reg.identityId]:checked").val() == "1") {
$("#reg_title").attr("disabled", false);
$("#reg_identityNo").attr("disabled", false);
$("#pinfo_gender").attr("disabled", false);
$("#reg_dateCompRegis").attr("disabled", false);
$("#pinfo_maritalId").attr("disabled", false);
$("#pinfo_occupation").attr("disabled", false);
}
if ($("input[name=reg.identityId]:checked").val() == "2") {
$("#reg_registerNm").attr("disabled", false);
$("#busInfo_dateRegisCompany").attr("disabled", false);
$("#busInfo_natureBusiness").attr("disabled", false);
$("#busInfo_contactNm").attr("disabled", false);
}
});
</script> …
Run Code Online (Sandbox Code Playgroud) 我正在使用Razor Views开发ASP.Net MVC 3 Web应用程序.在视图中我想问一个用户只能有一个是/否答案的问题,因此,我打算使用两个单选按钮.
我有一个ViewModel,我将其传递给我的View,它看起来像这样
public class ViewModelFormImmigration
{
public int immigrationID { get; set; }
public int formID { get; set; }
[Required(ErrorMessage = "Please select Yes or No.")]
public bool euNational { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
在我的视图中,我有以下几行代码来显示"是"和"否"选项的单选按钮
@Html.RadioButtonFor(model => model.euNational, true) <text>Yes</text>
@Html.RadioButtonFor(model => model.euNational, false) <text>No</text>
Run Code Online (Sandbox Code Playgroud)
我的问题是,当用户第一次来到这个视图时,我不希望选择是或否选项.目前,当我创建ViewModel的实例(见上文)时,属性euNational默认为false,当ViewModel传递给我的View时,这意味着会自动选择No.
有没有这方面,所以当用户第一次看到视图时,默认情况下没有选择任何选项?
谢谢大家的帮助.
我有一个PDF类
public class UIClonePDFDetail
{
public int CatalogueID { get; set; }
public List<PDF> PDFToClone { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
pdf类是:
public class PDF
{
public int ID{ get; set; }
public bool Selected{ get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一个radiobuttons列表供用户选择1,这将在PDFToClone列表中的PDF元素上设置selected属性.
Html.RadioButtonFor(model => Model.UIClonePDFDetail[Model.UIClonePDFDetail.IndexOf(stageSelection)].Selected, "stageSelection")
Run Code Online (Sandbox Code Playgroud)
但这允许多个选择单选按钮.我可以看到为什么会发生这种情况,因为Html标签的名称元素是不同的.有没有办法强迫他们进入同一个家庭?
我的mvc网页上有2个单选按钮.
<% using (Html.BeginForm("Search", "Search"))
{ %>
// some html codes
<%= Html.RadioButtonFor(m => m.Agents, "A", new { Checked = "checked" })%> //radio button 1
<%= Html.RadioButtonFor(m=> m.Agents,"AG") %> //radio button 2
// some html codes
<% } %>
Run Code Online (Sandbox Code Playgroud)
aspx页面如下所示.
我的页面也有按钮.如果我点击该按钮,则会发生回发.
如果我更改了radiobutton选择,我需要另一个回发.如何在该事件上进行回发.但如果我更改了单选按钮的选择,则没有回发.我怎样才能实现这一目标?
我很难使用RadioButtonFor在MVC 4模板中左侧对齐单选按钮.
由于某种原因,他们被放置在中间,abd它只发生在下面的单选按钮是一张图片:
我试图浮动div但它没有用.
我还尝试将css类添加到单选按钮帮助程序,但我收到函数RadioButtonFor的重载错误
我甚至试着把它放进一张桌子里
请指教,这是我的代码
<div class="editor-field" >
<table>
<tr>
<td>
@Html.RadioButtonFor(model => model.isChildTakingMedicine, true, new { @onchange = "showTextBox()" }) YES<br />
</td>
</tr>
<tr><td>
@Html.RadioButtonFor(model => model.isChildTakingMedicine, false, new { @onchange = "showTextBox()" }) NO
@Html.ValidationMessageFor(model => model.isChildTakingMedicine)
</td>
</tr>
</table>
</div>
Run Code Online (Sandbox Code Playgroud) 我试着向我们求助
Html.ValidationMessageFor(m=>m.MyProperty,"The field is very much required");
但是..我的使用不引人注意我的验证,但由于某种原因,似乎一旦我使用customValidationMessage参数,该属性的不引人注意的验证"中断".
或者用更简单的术语表示......无论是否输入值,都会始终显示验证消息.它根本不会更新/切换.
该属性也用于RadioButtonFor ..所以完整的"代码"是:
@Html.RadioButtonFor(m=>m.Myproperty,"Value 1")
@Html.RadioButtonFor(m=>m.Myproperty,"Value 2")
@Html.ValidationMessageFor(m=>m.MyProperty,"Please select ine of the options")
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
asp.net-mvc message customvalidator radiobuttonfor unobtrusive-validation
radiobuttonfor ×13
asp.net-mvc ×9
razor ×5
c# ×3
radio-button ×2
alignment ×1
checkbox ×1
html ×1
html-helper ×1
jquery ×1
message ×1