私はこの答えをテストするためにViewModelを作成しました:送信ボタンmvc 3をクリックした後、List <T>プロパティを持つViewModelを埋める方法は?
チェックボックスリストを確認する必要がありますWeeklyModel.AlsoWeeklyViewModel。チェックボックスにすべてをリストしたい。以下の私のエラーをナットします。それは愚かなエラーです。私はそれを解決する方法を解決するために共鳴を理解することができませんか?ありがとう...参考にしてください(artcileが必要なもの)記事:モデルの表示、パーシャル、テンプレートを使用し、MVC 3 モデルで子バインディングを処理するのはいつですか?
public class WeeklyModel
{
public string Name { get; set; }
public string Value { get; set; }
public bool IsChecked { get; set; }
}
public class WeeklyViewModel
{
public IEnumerable<WeeklyModel> Settings { get; set; }
public WeeklyViewModel()
{
Settings = new List<WeeklyModel>();
}
}
コントローラ:
public ActionResult CreateWeekly()
{
var model = new WeeklyViewModel();
List<WeeklyModel> li = new List<WeeklyModel>();
li.Add( new WeeklyModel(){ Name="Monday", Value="mon", IsChecked=false});
model.Settings = li;
return View(model);
}
[HttpPost]
public ActionResult CreateWeekly( WeeklyViewModel weekly)
{
return View("CreateWeekly", weekly);
}
私はViews/Trigger / EditorTemplates / WeeklyModels.aspxを作成しました:
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ChildSite.Master" Inherits="System.Web.Mvc.ViewPage<GenSystem.Models.WeeklyModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%:Html.CheckBoxFor(m=>m.IsChecked) %>
<%:Html.LabelFor(m=>m.IsChecked,Model.Name) %>
<%:Html.HiddenFor(m=>m.Name) %>
<%:Html.HiddenFor(m=>m.Value) %>
</asp:Content>
意見 :
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/ChildSite.Master" Inherits="System.Web.Mvc.ViewPage<GenSystem.Models.WeeklyViewModel>" %>
<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
CreateWeekly
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<%
using (Html.BeginForm())
{
%>
<div>
<%:Html.EditorFor(m => m.Settings)%>
</div>
<br />
<input value="GenerateForWeekly" name="submitButton" type="submit" />
<%} %>
</asp:Content>
このエラーを解決する方法:
System.ArgumentException:同じキーを持つアイテムがすでに追加されています。System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)at System.Collections.Generic.Dictionary 2.Insert(TKey key, TValue value, Boolean add)
at System.Collections.Generic.Dictionary
2.Add(TKey key、TValue value)at Transformer.NET.Token.ParseAnchors()at Transformer.NET.TextTransformer.Parse(リスト1 tokensType, Dictionary
2変数)Transformer.NET.TextTransformer.Transform(List1 tokensType, Dictionary
2つの変数)でTransformer.NET.TextTransformer.Transform(List`1 tokensType)でTransformer.NET.TextTransformer.Transform()でExt.Net.ExtNetTransformer.Transform(String text)でExt.Net.InitScriptFilter.Transform()でExt.Net.InitScriptFilter.Flush()at System.Web.HttpWriter.Filter(Boolean finalFiltering)at System.Web.HttpResponse.FilterOutput()at System.Web.HttpApplication.CallFilterExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute( )System.Web.HttpApplication.ExecuteStep(IExecutionStep step、Boolean&completedSynchronously)