我有一個MVC5應用程序,並在我的視圖,我有一個這樣的代碼:如何將複選框的值傳遞給MVC5中的ActionResult?
<div class="form-group">
@Html.LabelFor(model => model.CategoryID, "Category", htmlAttributes: new { @class = "control-label col-md-3" })
<div class="col-md-9">
@Html.DropDownList("CategoryID", null, "Please select a category", htmlAttributes: new { @class = "form-control" })
@Html.ValidationMessageFor(model => model.CategoryID, "", new { @class = "text-danger" })
</div>
</div>
<div id="subcatsform" class="form-group" style="visibility:hidden;">
@Html.LabelFor(m => m.Subcategories, new { @class = "col-md-3 control-label" })
<div id="subcats" class="col-md-9">
</div>
</div>
然後,我有一個JavaScript代碼根據以前選擇的類別,它填充的子類別。我用下面的代碼段實現它:
$(function() {
$("#CategoryID").on("change", function() {
var selected_option = $("#CategoryID option").filter(":selected").text();
$("#subcats").empty();
if (selected_option != "Please select a category") {
$("#subcatsform").css("visibility", "visible");
$.ajax({
url: "/Home/GetSubcategories",
dataType: "json",
data: {
cid: $("#CategoryID").val(),
},
success: function (data) {
$.each(data, function (key, value) {
var checkbox = '<input type="checkbox" name="subcategory" value="' + value.id + '"> ' + value.value + '<br />';
$("#subcats").append(checkbox);
});
}
});
}
else
{
$("#subcatsform").css("visibility", "hidden");
}
});
});
的一點是,直到一切正常,併爲每個選定的類別,我正確地獲取子類別的列表,並與他們建立的每一個,其中的複選框您可以看到name屬性等於subcategory
,而value
屬性等於該子類別的實際ID。
接下來我想要做的是,我想獲得選中的複選框(意爲選定的子類別)的value
屬性,並將其傳遞給我的控制器。我的ActionResult是這樣定義的:
public async Task<ActionResult> RegisterBusiness(BusinessViewModel model)
的BusinessViewModel
裏面,我有這樣的特性:
public virtual ICollection<Subcategory> Subcategories { get; set; }
而且,最後我Subcategory
模型的定義是這樣的:
public class Subcategory
{
public int SubcategoryID { get; set; }
public string SubcategoryName { get; set; }
public string SubcategoryDescription { get; set; }
[ForeignKey("Category")]
[Display(Name = "Category")]
public int CategoryID { get; set; }
public virtual Category Category { get; set; }
[NotMapped]
public bool IsSelected { get; set; }
}
如果有人可以幫助我將選定複選框的值傳入我的RegisterBusiness
ActionResult,然後將它們存儲在我的ICollection<Subcategory> Subcategories
財產,我會很高興。
感謝您的回答。一個問題,我不應該做一個foreach循環,查找我的數據庫中的每個子類別與檢查的ID,然後返回它們?因爲像上面的代碼,我想它會創建一個子類別的新實例。 – tett