私は評価と呼ばれるクラスがあり、5つの異なる評価(1 =不良.. 5 =優秀)があります。また、10の質問があり、それぞれが評価クラスを使用するモデル(レビュー)もあります。今ビューでは、コードが多少ペーストされているので、Reviewクラスのこれらの各プロパティに対してforEachがあります。コードを複製し、それらのプロパティを変更するのではなく、これがすべて可能ならば、レザーの構文を生成するRatingsクラスのメソッドを作成するだけです。C#クラスでカミソリの構文を生成して表示に送信
現在の状況と私がしたいことについてのサンプルは以下のとおりです。
現在のビュー(のみ2つのプロパティ表示:私はそれを見たい方法
<tr>
<td class="control-label col-md-4">
@Html.LabelFor(model => model.ReviewModel.SpeakerReview, htmlAttributes: new { @class = "control-label " })
</td>
@foreach (var rating in ratingModel.RatingList)
{
<td class="col-md-1">
@Html.RadioButtonFor(model => model.ReviewModel.SpeakerReview, rating.RatingId)
</td>
}
</tr>
<tr>
<td class="control-label col-md-4">
@Html.LabelFor(model => model.ReviewModel.AvHandoutsApplicable, htmlAttributes: new { @class = "control-label " })
</td>
@foreach (var rating in ratingModel.RatingList)
{
<td class="col-md-1">
@Html.RadioButtonFor(model => model.ReviewModel.AvHandoutsApplicable, rating.RatingId)
</td>
}
</tr>
:
ビュー:
<tr>
<td class="control-label col-md-4">
@Html.LabelFor(model => model.ReviewModel.SpeakerReview, htmlAttributes: new { @class = "control-label " })
</td>
@ReviewModel.BuildRatingList(ratingModel, ReviewModel.SpeakerReview);
</tr>
<tr>
<td class="control-label col-md-4">
@Html.LabelFor(model => model.ReviewModel.AvHandoutsApplicable, htmlAttributes: new { @class = "control-label " })
</td>
@ReviewModel.BuildRatingList(ratingModel, ReviewModel.AvHandoutsApplicable);
</tr>
をクラス:
public static string BuildRatingList(Rating ratingModel, object reviewItem)
{
string RtnVal = "";
foreach (var rating in ratingModel.RatingList)
{
RtnVal = "<td class='col-md-1'>@Html.RadioButtonFor(model => " + reviewItem + ", rating.RatingId)</td>";
}
return RtnVal;
}
感謝事前に!
あなたはパーシャルビューを使用しようとしましたか? https://docs.asp.net/en/latest/mvc/views/partial.html – vittore
オブジェクトをパーシャルビューに渡したり読み取ったりして、苦労しました。たとえば、 "model.ReviewModel.SpeakerReview"を渡して読み込む方法、 – DanO
単純なケースでは、それはちょうど '@Html.Partial(" SpeakerReviewPartial "、Model.ReviewModel.SpeakerReview)' – vittore