gpt4 book ai didi

asp.net-mvc - ASP.NET MVC - 停止 Html.TextBoxFor 将点添加到 Name 属性

转载 作者:行者123 更新时间:2023-12-04 02:40:45 25 4
gpt4 key购买 nike

我对 ASP.NET MVC 相当陌生,并且 Html.TextBoxFor() 遇到了问题 - 它为渲染输入的 name 属性提供了一个点。

<%= Html.TextBoxFor(m => m.Box.Name, new { id= "txtName" }) %>

呈现以下 HTML:

<input type="text" value="" name="Box.Name" id="txtName">

我正在使用 jQuery 验证插件进行客户端验证。由于 Box.Name 中的点,它无法验证此输入(导致 JavaScript 错误)。

我的模型看起来像这样:

public class Box {
[Required(ErrorMessage = "Please enter a name")]
public string Name { get; set; }
public int BoxMaterialID { get; set; }
}

我的 ViewModel 看起来像这样:

public class BoxViewModel
{
public Box Box { get; set; }
public List<BoxMaterial> BoxMaterial { get; set;}
}

我的 Controller 如下所示:

public ActionResult New(FormCollection postData)
{
Box box = new Box();

try
{
UpdateModel(box, "Box");
boxService.SaveBox(box);
}
catch
{
return View(new BoxViewModel(box));
}

return RedirectToAction("Index", "Boxes");
}

服务器端验证在模型上使用数据注释就像一个魅力。我似乎遇到的唯一问题是客户端验证,因为“。”在名称属性中。

感谢您的帮助!

最佳答案

名称中添加的点由 default model binder 使用。当提交表单以便正确填充模型时。就验证而言,您可以这样设置:

$("#myForm").validate({
rules: {
'Box.Name': {
required: true
}
},
messages: {
'Box.Name': {
required: 'some error message'
}
}
});

关于asp.net-mvc - ASP.NET MVC - 停止 Html.TextBoxFor 将点添加到 Name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3127665/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com