У меня есть приложение ASP.NET MVC Razor. В этом приложении у меня есть элемент управления MultiSelect (в основном это выпадающий список, из которого вы можете выбрать несколько элементов). Я подписался на «закрытое» событие этого элемента управления, так что когда он закрыт, он передает цепочку целых чисел, разделенных запятыми, в контроллер. Однако, хотя метод в контроллере вызывается, передаваемое значение всегда равно нулю. Я проверил событие, и я знаю, что строка генерируется правильно. Вот код в обработчик события:Передача строки из представления в контроллер в ASP.NET MVC Razor
`function close() {
var alertTypeIds = $("#alertMultiSelect").val().toString();
//alert("this is the alertTypeId: " + alertTypeIds);
$.post('@Url.Action("SubscribeToAlerts")', { value: alertTypeIds }, function (result) {
alert("the value was successfully sent to the server");
});
};`
Вот код контроллера:
`public void SubscribeToAlerts(string alertTypeIds)
{
bool isSubscribedToNewItem = false;
bool isSubscribedToNewCustomer = false;
bool isSubscribedToNewSupplier = false;
if (alertTypeIds.Contains('1')){
isSubscribedToNewItem = true;
}
if (alertTypeIds.Contains('2')) {
isSubscribedToNewCustomer = true;
}
if (alertTypeIds.Contains('3')) {
isSubscribedToNewSupplier = true;
}
var subscriptionRepository = new BMTool.Persistance.SubscriptionRepository();
var userRepository = new BMTool.Persistance.UserRepository();
IList<BMTool.Models.User> user = userRepository.GetUser("[email protected]");
int associateId = user[0].AssociateId;
subscriptionRepository.UpdateSubscriptionForUser(associateId, isSubscribedToNewItem, isSubscribedToNewCustomer, isSubscribedToNewSupplier,
isSubscribedToBmTerminated, isSubscribedToBmChange, isSubscribedToItemCategoryChange);
}`
Теперь я знаю, что строка alertTypeIds генерируется правильно в обработчике. Я также знаю, что метод контроллера ударяется. Однако значение, переданное в контроллер (alertTypeIds), всегда равно нулю. Я также хочу отметить, что я знаю, что это неаккуратный код. Я просто хотел убедиться, что я не перехожу к нулевому значению, прежде чем я займусь написанием кода, который, возможно, придется выбросить.