use*_*922 130 asp.net-mvc
每当我提交表单时我都会收到此错误,因为这样就没有调用action方法:
已添加具有相同键的项目.
和例外细节:
[ArgumentException:已经添加了具有相同键的项.]
System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)+52
System.Collections.Generic.Dictionary`2.Insert(TKey key,TValue value,Boolean add)+9382923 System .Linq.Enumerable.ToDictionary(IEnumerable`1 source,Func`2 keySelector,Func`2 elementSelector,IEqualityComparer`1 comparer)+252
System.Linq.Enumerable.ToDictionary(IEnumerable`1 source,Func`2 keySelector,IEqualityComparer`1比较器)91
System.Web.Mvc.ModelBindingContext.get_PropertyMetadata()228 System.Web.Mvc.DefaultModelBinder.BindProperty(controllerContext controllerContext,ModelBindingContext的BindingContext,的PropertyDescriptor的PropertyDescriptor)392个
System.Web.Mvc.DefaultModelBinder.BindProperties(controllerContext controllerContext ,ModelBindingContext bindingContext)+147
System.Web.Mvc.DefaultModelBinder.BindComplexElementalModel(ControllerContext controllerContext,ModelBindingContext bindingContext,Object model)+98
System.W eb.Mvc.DefaultModelBinder.BindComplexModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+2504
System.Web.Mvc.DefaultModelBinder.BindModel(ControllerContext controllerContext,ModelBindingContext bindingContext)+548
System.Web.Mvc.ControllerActionInvoker.GetParameterValue(ControllerContext controllerContext,ParameterDescriptor parameterDescriptor) +473
System.Web.Mvc.ControllerActionInvoker.GetParameterValues(ControllerContext controllerContext,ActionDescriptor actionDescriptor)+181
System.Web.Mvc.ControllerActionInvoker.InvokeAction(ControllerContext controllerContext,String actionName)+830 System.Web.Mvc.Controller.ExecuteCore()+ 136 System.Web.Mvc.ControllerBase.Execute(RequestContext requestContext)+111
System.Web.Mvc.ControllerBase.System.Web.Mvc.IController.Execute(RequestContext requestContext)+39
System.Web.Mvc.<> c__DisplayClass8.b__4 ()+65 System.Web.Mvc.Async.<> c__DisplayClass1.b__0()+44 System.Web.Mvc.Async.<> c__DisplayClass8`1.b__7(IAsync 结果_)+42 System.Web.Mvc.Async.WrappedAsyncResult`1.End()+ 141 System.Web.Mvc.Async.AsyncResultWrapper.End(IAsyncResult asyncResult,Object tag)+54
System.Web.Mvc.Async. AsyncResultWrapper.End(IAsyncResult asyncResult,Object tag)+40
System.Web.Mvc.MvcHandler.EndProcessRequest(IAsyncResult asyncResult)+52
System.Web.Mvc.MvcHandler.System.Web.IHttpAsyncHandler.EndProcessRequest(IAsyncResult result)+38
System. Web.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+8836913 System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean&completedSynchronously)+184
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/XYZ.Master"
Inherits="System.Web.Mvc.ViewPage<XYZ.Models.Admin.AdminSegmentCommissionsModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Create
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<% using (Html.BeginForm()) {%>
<div class="box3">
<div class="userinfo">
<h3>Admin Segment Commissions</h3>
</div>
<div class="buttons-panel">
<ul>
<li>
<input type="submit" value="Save" class="save" />
</li>
<li>
<%:Html.ActionLink("Cancel", "Index", new { controller = "AdminSegmentCommissions" }, new { @class = "cancel" })%>
<%--<input type="button" value="Cancel" class="cancel" onclick="document.location.href='/AirlineLedgerTransactionReceiver/Index'" />--%>
</li>
</ul>
</div>
</div>
<div class="row-1">
<div class="form-box1 round-corner">
<div class="form-box1-row">
<div class="form-box1-row-content float-left">
<div>
<label>
<%: Html.LabelFor(model => model.FromSegmentNumber) %></label>
<%: Html.TextBoxFor(model => model.FromSegmentNumber) %>
<%: Html.ValidationMessageFor(model => model.FromSegmentNumber) %>
</div>
</div>
</div>
</div>
</div>
<%} %>
Run Code Online (Sandbox Code Playgroud)
Ali*_*tad 208
最有可能的是,您的模型包含两次相同的属性.也许您正在使用new隐藏基本属性.
解决方案是覆盖属性或使用其他名称.
如果您分享您的模型,我们将能够详细说明.
小智 20
我有同样的问题,这就是我解决它的方式.我的ViewModel中有一个具有相同名称的重复属性.一个属性位于BaseViewModel中,另一个位于派生模型中.
public class BaseviewModel{
public int UserId { get; set; }
}
public class Model : BaseViewModel
{
public int UserId { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
我改变了
public class BaseviewModel{
public int UserId { get; set; }
}
public class Model : BaseViewModel
{
public int User_Id { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
现在工作正常.
Hal*_*Hal 12
我有一个类似的问题,发现这是因为我有一个类似命名的公共财产(应该是私人的),只是在案件中有所不同.
public string PropertyName {get;set;} // actually set propertyName, get propertyName
public string propertyName {get;set;}
Run Code Online (Sandbox Code Playgroud)
本来应该
public string PropertyName {get;set;}
private string propertyName {get;set;}
Run Code Online (Sandbox Code Playgroud)
Cur*_*min 12
我有2个这样的模型属性
public int LinkId {get;set;}
public int LinkID {get;set;}
Run Code Online (Sandbox Code Playgroud)
奇怪的是它为这2个哈哈投掷了这个错误..
我的问题不在我的C#模型中,而是在我使用AJAX发布的javascript对象中.我正在使用Angular进行绑定,并且Notes页面上有一个大写字段,而我的C#对象期待小写notes.更具描述性的错误肯定会很好.
C#:
class Post {
public string notes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
角/ JavaScript的:
<input ng-model="post.Notes" type="text">
Run Code Online (Sandbox Code Playgroud)
我遇到了同样的问题,我正在foreach遍历我的对象并将结果添加到 a 中,Dictionary<string, string>并且我在数据库中的键中出现了“重复”
foreach (var item in myObject)
{
myDictionary.Add(Convert.ToString(item.x),
item.y);
}
Run Code Online (Sandbox Code Playgroud)
item.x 有重复值
| 归档时间: |
|
| 查看次数: |
316508 次 |
| 最近记录: |