레시피 목록이 있고 각 레서피에 여러 개의 레서피 선이 있습니다. 각 레시피를 반복하고 싶습니다. 레서피 선 foreach Recipe foreach.ViewModel을 사용하여 부분적으로 자식 foreach가 루핑되지 않음
레시피 클래스
namespace XXX.Models
{
public class Recipe
{
public int RecipeID { get; set; }
public string RecipeName { get; set; }
public string RecipeInstructions { get; set; }
public virtual List<RecipeLine> RecipeLines { get; set; }
}
}
RecipeLine 클래스
namespace XXX.Models
{
public class RecipeLine
{
public int RecipeLineID { get; set; }
public float Quantity { get; set; }
public int MeasurementID { get; set; }
public int RecipeID { get; set; }
public int IngredientID { get; set; }
public virtual Measurement Measurement { get; set; }
public virtual Recipe Recipe { get; set; }
public virtual Ingredient Ingredient { get; set; }
}
}
성분 및 측정 클래스를 나열 할 필요가 없습니다, 그러나 구조화 정상입니다. 이제
의이 뷰 모델
namespace XXX.ViewModels
{
public class RecipeLineViewModel
{
public IEnumerable<Recipe> Recipes { get; set; }
public IEnumerable<RecipeLine> RecipeLines { get; set; }
}
}
그리고 PartialsController 살펴 보자
namespace XXX.Controllers
{
public class PartialsController : Controller
{
private XXXDb db = new XXXDb();
public ActionResult RecipeList()
{
RecipeLineViewModel viewModel;
viewModel = new RecipeLineViewModel();
viewModel.Recipes = db.Recipes.ToList();
viewModel.RecipeLines = db.RecipeLines.Include(r =>
r.Measurement).Include(r => r.Ingredient);
return PartialView("_RecipeList", viewModel);
}
}
}
이제 부분 뷰는 뷰> 파셜> __RecipeList.cshtml
RecipeList 부분보기
@model XXX.ViewModels.RecipeLineViewModel
@foreach (Recipe recipe in Model.Recipes)
{
<div>@recipe.RecipeName</div>
<div>@recipe.RecipeInstructions</div>
foreach (RecipeLine recipeLines in Model.RecipeLines)
{
<div class="row">
<div class="large-12 columns">
@recipeLines.Quantity @recipeLines.Measurement.MeasurementEn
@recipeLines.Ingredient.IngredientNameEn
</div>
</div>
}
}
}
입니다
(각 recipeLine 끝에 RecipeID를 인쇄하여 각 recipe가 RecipeID = 1에 대한 Recipe Lines를 반복하고 자신의 RecipeID와 관련된 라인을 반복하지 않음을 보여줍니다. 나는이 물건에 초보자이다, 나는 그들이 어딘가에 내가 레서피 라인에 레서피에 대해 그들이 루핑해야한다고 말하고 있어야한다고 생각하고있다. Linq에 절은 foreach는 어디에
레서피 클래스에 RecipeLines 컬렉션이있는 경우 왜 ViewModel에 레시피 클래스 컬렉션이 있습니까? 내부 루프가'recipe.RecipeLines'을 인쇄해야합니다 ... –
오류로 수정하려고합니다. –