#javascript #asp.net-mvc
#javascript #asp.net-mvc
Вопрос:
Я пытаюсь создать window.Расположение.href передача строки запроса с 1 записью.
Метод действия MVC ожидает, что эта запись будет целым числом.
Я могу жестко запрограммировать ‘2’, и это работает. Конечно, я не хочу жестко кодировать.
Итак, я получаю значение и устанавливаю переменную и пытаюсь передать эту переменную, используя любой из 2 приведенных ниже случаев, но это не удается. Я получаю:
{0}The parameters dictionary contains a null entry for parameter 'blogCategoryId' of non-nullable type
'System.Int32' for method 'System.Web.Mvc.ActionResult BlogsForMaintIndex(Int32)' in
'GbngWebClient.Controllers.AdminFunctions.BlogMaint.BlogMaintController'. An optional parameter must
be a reference type, a nullable type, or be declared as an optional parameter.
Как мне его правильно построить?
Вот JavaScript:
$(function () {
$('#buttonClose').on('click', function () {
$('#modalView').modal('hide');
// The action method expects an integer.
var blogCategoryId = @Convert.ToInt32(Session["BlogCategoryId"]);
alert('blogCategoryId: ' blogCategoryId);
// WORKS!
//window.location.href = "/BlogMaint/BlogsForMaintIndex/?blogCategoryId=2";
// Neither of these 2 work.
//window.location.href = "/BlogMaint/BlogsForMaintIndex/?blogCategoryId=blogCategoryId";
window.location.href = "/BlogMaint/BlogsForMaintIndex/?blogCategoryId=' blogCategoryId '";
})
})
Вот упрощенный метод действия:
[HttpGet]
public ActionResult BlogsForMaintIndex(int blogCategoryId)
{
}
Ответ №1:
Попробуйте это
let myurl = "/BlogMaint/BlogsForMaintIndex/?blogCategoryId=" blogCategoryId;
window.location.href = myurl;