Действие контроллера вызова с пустыми/нулевыми строками в качестве параметра

У меня есть действие в моем контроллере, которое принимает 2-3 параметра, как показано ниже.

public ActionResult MyAction(string str1, string str2, string str3)
{
     // code here 
}

Это действие вызывается с некоторыми допустимыми значениями, так как параметры и результаты отображаются в представлении. Теперь я хочу снова вызвать одно и то же действие и передать пустые/нулевые строковые значения в качестве параметра. Но когда я вызываю действие следующим образом:

@Html.ActionLink("Click", "MyAction", "MyController") 

Шаблон маршрута выглядит следующим образом:

public static void RegisterRoutes(RouteCollection routes)
{
    routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

    routes.MapRoute(
        "Default",
        "{str1}/{str2}/{str3}",
        new {controller = "MyController", action = "MyAction", str1 = UrlParameter.Optional, str2 = UrlParameter.Optional, str3 = UrlParameter.Optional}
    );
}

Я получил те же значения, что и параметр, как я могу вызвать действие с пустыми/нулевыми значениями в качестве параметра?


person Muhammad Waqas    schedule 05.09.2020    source источник
comment
Что вы подразумеваете под теми же значениями, что и параметр? @Html.ActionLink("Click", "MyAction", "MyController") должен вызывать метод действия с нулевыми значениями параметров   -  person Rajdeep Debnath    schedule 06.09.2020
comment
@RajdeepDebnath Я имею в виду, что я получаю те же значения, что и параметр, когда это действие вызывается в первый раз, когда действие вызывается снова, я снова получаю те же значения.   -  person Muhammad Waqas    schedule 06.09.2020


Ответы (2)


Попробуйте этот код

@Html.ActionLink("Click", "MyAction", "MyController", new { str1 = "", str2 = "" , str3 = "" }) 
person Wowo Ot    schedule 06.09.2020
comment
Я использовал в соответствии с вашими предложениями, но я все еще получаю значения :( - person Muhammad Waqas; 06.09.2020
comment
Какое значение вы получаете, например, str1? - person Wowo Ot; 06.09.2020
comment
то же значение, что и при первом вызове метода действия - person Muhammad Waqas; 06.09.2020
comment
Вы пробовали очистить кеш? или используйте другой браузер. - person Wowo Ot; 06.09.2020

Здесь вы можете использовать необязательный параметр С#

public ActionResult MyAction(string str1="", string str2="", string str3=null)
{
     // code here 
}
@Html.ActionLink("link", "About", "Home")

public ActionResult MyAction(string str1="", string str2="", string str3=null)
{
    //values
     str1=="";
     str2=="";
     str3==null;
}
@Html.ActionLink("link", "About", "Home", new { str1="a", str2="b", str3="c" })

public ActionResult MyAction(string str1="", string str2="", string str3=null)
{
    //values
     str1=="a";
     str2=="b";
     str3=="c";
}
person Rajdeep Debnath    schedule 06.09.2020
comment
Я использовал в соответствии с вашими предложениями, но я все еще получаю значения :( - person Muhammad Waqas; 06.09.2020