Построение окна.Расположение.href передача строки запроса

#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;