0

facebook と twitter 別々の友達が欲しいです。このような :

ツイッター フェイスブック

EditorTemplates: FriendModel.cshtml

@model App.Web.Models.FriendModel
<div>
<input type="checkbox" name="saveInputs" value="@Model.FriendID"/>
<img alt="" src="@Model.ProfileImageUrl" />
<strong>@Model.Name</strong> Friends: <strong>@Model.FriendsCount</strong>
</div>
<br />

ビュー: FriendTeam.cshtml

@model App.Web.Models.FriendTeamModel
@{
   ViewBag.Title = "FriendTeam";
}
<h2>
  FriendTeam</h2>

 @using (@Html.BeginForm())
{          @Html.ValidationSummary(true)     
  <h3>Twitter</h3>
  <br />    
   @Html.EditorFor(model =>     model.Friends.Where(x=>x.SocialNetworkName=="Twitter"))                  

 <h3>Facebook</h3>
  <br />    
   @Html.EditorFor(model => model.Friends.Where(x=>x.SocialNetworkName=="Facebook")) 
 }
 <div>
@Html.ActionLink("Back to List", "Index")

フレンドチームモデル:

public class FriendTeamModel
{
    public long FriendTeam{ get; set; }
    public IEnumerable<FriendModel> Friends { get; set; }
}

フレンドモデル:

public class FriendModel
{
    public string FriendID { get; set; }
    public string SocialNetworkName { get; set; }

    public string Name { get; set; }       
    public int FriendsCount { get; set; }      
    public string ProfileImageUrl { get; set; }
}

エラー :

モデルは、住宅所有権のアクセス フィールド、1 次元配列のインデックス、またはカスタム インデクサーの単一パラメーターの式でのみ使用できます。

ありがとう、

4

3 に答える 3

1

エラーは基本的に、これを行うことができないことを意味します:

@Html.EditorFor(model => model.Friends.Where(x=>x.SocialNetworkName=="Twitter")) 

IEnumerable<FriendModel> Friendsそれらをすべて表示する場合はループするか、次FriendModelのように単一のを返すフィルタリング メソッドを使用します。

@Html.EditorFor(model => model.Friends.SingleOrDefault(x=>x.SocialNetworkName=="Twitter"))
于 2012-05-23T13:28:50.740 に答える
0

1 つのフォームに複数の項目を追加する必要があると思います。この記事はあなたを助けるかもしれません:

jQuery Dynamic Form は jQuery のプラグインです。HTML テンプレートに基づいてフィールドを動的に追加する機能を提供します。アップデート バージョン 1.0 がリリースされ、Google Code にアップロードされました。待望の 2 つの機能が含まれています: ネストされたフィールドの複製とデータの挿入です。時間があるときにサンプルを更新しますが、zip 内に動作するサンプル パッケージが既にあるので、ダウンロードしてください。 http://code.google.com/p/jquery-dynamic-form/downloads/list

于 2012-05-24T07:25:52.617 に答える
0

ビューモデルを変更して、ビューにより適したものにする必要があります

public class FriendTeamModel
{
    public long FriendTeam{ get; set; }
    public IEnumerable<FriendModel> FacebookFriends { get; set; }
    public IEnumerable<FriendModel> TwitterFriends { get; set; }
}

そして、これらのパラメーター値をビューではなくコントローラーに設定します。このように、ビューでは、

@using (@Html.BeginForm())
{          
  @Html.ValidationSummary(true)     
  <h3>Twitter</h3>
  <br />    
   @Html.EditorFor(model => model.TwitterFriends)                  

  <h3>Facebook</h3>
  <br />    
   @Html.EditorFor(model => model.FaceookFriends) 
 }
于 2012-05-24T06:18:12.787 に答える