Ich bin neu im Web von Desktop.Ansicht nicht mehrere Listen in Asp.net MVC
Ich habe zwei Modelle.
erste
public class Item
{
public int Id { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public double Price { get; set; }
public double Stock { get; set; }
public Category Category { get; set; }
public string ImagePath { get; set; }
}
und zweite ist
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public bool isSelected { get; set; }
}
und ein Ansichtsmodell für sie meiner Ansicht
public class ProductsVM
{
public IList<Item> items { get; set; }
public IList<Category> categories { get; set; }
}
und mein Controller-Aktion-Methode sieht wie folgt aus
vorbeii verwendet habe es meiner Meinung nach wie dies
@using (Html.BeginForm())
{
<div class="row">
<div class="col-md-2">
@foreach (var it in Model.categories.ToList())
{
<div class="input-group">
@Html.CheckBoxFor(i => it.isSelected, new { Name = "ChkCategory", id = "ChkCategory"+it.Id, @class = "Categories" }) @it.Name
@Html.HiddenFor(i => it.Name)
</div>
}
</div>
@*Loading Items...*@
<div class="col-md-10">
@for (int i = 0; i < Model.items.Count()/3; i++)
{
<div class="row">
@foreach (var item in Model.items.Skip(i * 3).Take(3))
{
<div class="col-md-4 col-sm-6 col-xs-12">
<img src="@Url.Content(item.ImagePath)" alt="@item.Description" class="thumbnail" />
</div>
}
</div>
}
</div>
</div>
<input type="submit" value="submit" />
}
@section scripts
{
<script src="~/Scripts/Products.js"></script>
}
ich alle Wege versucht habe, mein Modell zurück zu bekommen, wenn ich die von dem Controller
poste ich das bin Entsendung von auf Checkbox klicken Ereignis mit Ajax aus meiner products.js Datei.
aber in meiner Controller-Action-Methode zeigt es immer das ViewModel als null.
was soll ich tun? mache ich etwas falsch.
Products.js
$(function() {
console.log('Inside js......');
$('.Categories').click(function (e) {
console.log(this.id, $("#" + this.id).is(":checked"));
$.ajax({
type: "POST",
url: "/Home/Products",
success: function() {
console.log("ajax successfull....");
},
error: function() {
console.log("ajax error....");
}
});
});
});
Zeigen Sie Ihre Products.js –
yup, wenn Sie Ihre products.js zeigen wird es hilfreich für uns –
Neben der Betrogene debug.thanks (Sie 'foreach' Schleife nicht verwenden können, versuchen Sie nicht, den' Namen zu ändern Attribut. –