Я создаю приложение, которое позволяет мне записывать рецепты.Я пытаюсь создать представление, которое позволяет мне добавить основы рецепта, например, название рецепта, дату рецепта, температуру приготовления и используемые ингредиенты.
Я создаю представление, содержащее некоторый jquery для загрузки частичногоview clientide.
При публикации у меня возникли некоторые проблемы при попытке получить значения из частичного представления, загруженного с помощью jquery.
Вырезанная версия основного вида выглядит так (яизначально требуется 1 частичное представление)
<div id="ingredients">
@{ Html.RenderPartial("_AddIngredient", new IngredientViewModel()); }
</div>
<script type="text/javascript">
$(document).ready(function () {
var dest = $("#ingredients");
$("#add-ingredient").click(function () {
loadPartial();
});
function loadPartial() {
$.get("/Recipe/AddIngredient", {}, function (data) { $('#ingredients').append(data); }, "html");
};
});
</script>
Мой частичный вид выглядит как
<div class="ingredient-name">
@Html.LabelFor(x => Model.IngredientModel.IngredientName)
@Html.TextBoxFor(x => Model.IngredientModel.IngredientName)
</div>
<div class="ingredient-measurementamount">
@Html.LabelFor(x => Model.MeasurementAmount)
@Html.TextBoxFor(x => Model.MeasurementAmount)
</div>
<div class="ingredient-measurementtype">
@Html.LabelFor(x => Model.MeasurementType)
@Html.TextBoxFor(x => Model.MeasurementType)
</div>
Сообщение контроллера
[HttpPost]
public ActionResult Create(RecipeViewModel vm,IEnumerable<string>IngredientName, IEnumerable<string> MeasurementAmount, IEnumerable<string> MeasurementType)
{
Наконец, моя модель представления выглядит как
public class IngredientViewModel
{
public RecipeModel RecipeModel { get; set; }
public IEnumerable<IngredientModel> Ingredients { get; set; }
}
Мой контроллер довольно уродливый ...... я использую Inumerble, чтобы получить значения для MeasurementAmount & MeasurementType (IngredientName всегда возвращает значение NULL), в идеале я думал, что в httppost Ingredients будет заполнено всесмог бы заполнить ингредиенты
Что мне нужно сделать, чтобы получить значения из моего частичного представления в мой контроллер?