Tag: 模型绑定

ASP.NET MVC模型绑定与表单元素名称中的虚线

我一直在搜索互联网,试图找到一种方法来容纳我的表单元素中的破折号到ASP.NET的控制器在MVC 2,3或甚至4中的默认模型绑定行为。 作为前端开发人员,我更喜欢使用CSS中的破折号而不是camelCase或下划线。 在我的标记中,我希望能够做到的是这样的: 在控制器中,我将传入一个C#对象,如下所示: public class Person { public string FirstName { get; set; } public string LastName { get; set; } //etc… } 有没有办法扩展Controller类以通过一些正则表达式或其他行为来适应这种情况? 我讨厌我必须做这样的事情: 甚至这个: 思考?

在ASP.NET MVC POST中绑定IEnumerable的模型?

将IEnumerable类型的模型绑定到MVC POST是否有任何问题? 我的模型中的某些属性未绑定到操作的post。 似乎模型上的属性就像字符串一样好,但我的IEnumerable是没有绑定的。 这是我的代码片段: m.ResponseInfo.SubsetInfo.Test) %> <% for (int i = 0; i m.ResponseInfo.SubsetInfo.BandAvailabilities.ToArray()[i].BandName) %> 以下是模型中这些属性的外观: public IEnumerable BandAvailabilities { get; set; } public string Test { get; set; } 视图工作正常,并输出一个文本框列表,其中包含预期值。 但是被解雇的post只会将Test字符串识别为属性。 模型状态也不包含我的IEnumerable数据。

ASP.net Web API中MVC的DefaultModelBinder的等价物是什么?

我想在ASP.Net Web API中创建一个自定义模型绑定器。 有关如何从头开始执行此操作的大量资源,但我想利用现有function。 我在codeplex中查看了源代码,并且可以在那里看到大量的模型绑定器,但大多数是密封的……即使这样,我也无法确定在哪种情况下使用哪一个。 这是我的api方法标题: public async Task Post(long appId, [FromBody]Field field) 我想要做的是基本上在填充所有基本属性后拦截模型绑定器,然后根据我将在客户端设置的http请求标头设置一些额外的值。 正如我所说,我很乐意创建自定义模型绑定器和模型绑定器并将它们连接起来,我遇到问题的是试图重新使用现有的function。 谢谢,皮特

将空的js数组传递给控制器​​会给出null

这是我的模型,它是一个WCF代理类 public class MyModel { public Employees[] MyEmpls{get;set;} public int Id{get;set;} public OrgName{get;set;} } 将具有MyEmpls as empty array的下面的json结构对象MyEmpls as empty array传递给MVC控制器。 [“Id”:12, “MyEmpls”:[], “OrgName”:”Kekran Mcran”] 调节器 [HttpPost] public ActionResult SaveOrg(MyModel model) { //model.MyEmpls is null here } 我期待mode.MyEmpls为空c#数组而不是null。 有人可以帮助我吗? 我们需要为此编写自定义模型绑定器吗?

使用x-www-form-urlencoded发布数据的ASP.Net Web API自定义模型绑定 – 似乎没什么用

发布x-www-form-urlencoded数据时,我在定制模型绑定时遇到了很多麻烦。 我已经尝试过各种我能想到的方式,似乎没有任何东西可以产生预期的结果。 注意发布JSON数据时,我的JsonConverters等都可以正常工作。 当我发布为x-www-form-urlencoded ,系统似乎无法弄清楚如何绑定我的模型。 我的测试用例是我想将TimeZoneInfo对象绑定为我的模型的一部分。 这是我的模型活页夹: public class TimeZoneModelBinder : SystemizerModelBinder { protected override object BindModel(string attemptedValue, Action addModelError) { try { return TimeZoneInfo.FindSystemTimeZoneById(attemptedValue); } catch(TimeZoneNotFoundException) { addModelError(“The value was not a valid time zone ID. See the GetSupportedTimeZones Api call for a list of valid time zone IDs.”); return null; } } } […]

MVC 3不绑定可空长

我创建了一个测试网站来调试我遇到的问题,看起来我要么传递JSON数据错误,要么MVC无法绑定可空的longs。 当然,我正在使用最新的MVC 3版本。 public class GetDataModel { public string TestString { get; set; } public long? TestLong { get; set; } public int? TestInt { get; set; } } [HttpPost] public ActionResult GetData(GetDataModel model) { // Do stuff } 我发布了一个具有正确JSON内容类型的JSON字符串: { “TestString”:”test”, “TestLong”:12345, “TestInt”:123 } 长期没有约束,它总是空的。 如果我把这个值放在引号中,它就可以工作,但我不应该这样做,我应该吗? 我需要为该值设置自定义模型绑定器吗?

强类型视图中多模型表示的模型绑定

我在提交多个模型的表单上遇到问题。 我有一份投诉表格,其中包括投诉信息以及一对多投诉人。 我正在尝试提交表单,但我在绑定上遇到错误。 ModelState.IsValid始终返回false。 如果我调试并查看ModelState错误,我会得到一个说法:“EntityCollection已经被初始化。应该只调用InitializeRelatedCollection方法来在对象图的反序列化期间初始化一个新的EntityCollection”。 此外,在调试时,我可以看到投诉模型确实从表单提交中填充了投诉人,因此看起来该部分正在运行。 我不确定使用默认的ModelBinder我是不是可以做什么,或者我是不是以正确的方式去做。 我似乎无法找到任何具体的例子或文件。 这里可以在stackoverflow上找到一个非常类似的问题,但它似乎没有处理强类型视图。 控制器代码: public ActionResult Edit(int id) { var complaint = (from c in _entities.ComplaintSet.Include(“Complainants”) where c.Id == id select c).FirstOrDefault(); return View(complaint); } // // POST: /Home/Edit/5 [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit(Complaint complaint) { if (!ModelState.IsValid) { return View(); } try { var originalComplaint = (from c in […]

C#WPF MVVM绑定不更新

我正在尝试使用转换器进行简单绑定,以显示满足给定枚举的可观察集合内的元素计数,让我们说ABC D. 当我用我的其他项目测试它时,下面的代码工作,但是最基本的项目绑定没有得到更新。 完全相同的代码在其他项目中工作(真的很奇怪)。 我是如何做绑定的 变流器 class TestConverter : IValueConverter { public object Convert( object value, Type targetType, object parameter, CultureInfo culture) { if (value == null) return 0; var v = (ObservableCollection)value; return $”{v.Count} / {v.AsParallel().Count(x => x.TestEnum == TestEnum.A)} / {v.AsParallel().Count(x => x.TestEnum == TestEnum.B)} / {v.AsParallel().Count(x => x.TestEnum == TestEnum.C)} / {v.AsParallel().Count(x […]

如何使用MVC.Net建模绑定“List ”列表

我正在尝试创建一个由一系列下拉列表组成的表单,所有这些列表都是从数据库加载的。 我不知道需要多少下拉列表,或者每个下拉列表在编译时有多少选项。 如何设置这些字段以允许它们在发布时进行模型绑定? 在下面的每个代码元素中都有很多其他的复杂性,但是即使在降低到​​基本级别时,我也无法使模型绑定工作。 型号: public class MyPageViewModel { public List ListOfDropDownLists { get; set; } } public class MyDropDownListModel { public string Key { get; set; } public string Value { get; set; } public List Options { get; set; } } 控制器获取操作: [AcceptVerbs(HttpVerbs.Get)] [ActionName(“MyAction”)] public ActionResult MyGetAction() { var values_1 = new List […]

无法让我的DropDownListFor在下拉菜单中选择一个选定的SelectListItem项

我有一个填充到下拉菜单中的项目集合: string myUserName = “PopulatedWithSomeUser”; var users= from x in userRepository.GetAll() select new SelectListItem { Value = x.Id.ToString(), Text = x.Name, Selected = (x.Name == myUserName ) }; 这会正确填充对象并设置所选项目。 接下来,我使用ViewModel将其传递给我的View并尝试填充/选择: 我试过了: @Html.DropDownListFor(model=>model.Users,new SelectList(Model.Users),new {id = “add-user-list”, name=”add-user-list”}) 也 @Html.DropDownListFor(model=>model.Users,new SelectList(Model.Users,”Value”,”Text”,”Selected”),new {id = “add-user-list”, name=”add-user-list”}) 也 @Html.DropDownListFor(model=>model.Users,Model.Users, new {id = “add-user-list”, name=”add-user-list”}) 列表已正确填充,但我的“已选择”项目从未被选中。 我究竟做错了什么 ? 谢谢。