MVC LinkButton эквивалентный - PullRequest
       4

MVC LinkButton эквивалентный

1 голос
/ 04 февраля 2010

Я переписываю приложение веб-форм в качестве упражнения для изучения некоторых навыков MVC.

У меня есть несколько кнопок LinkButton в исходном приложении, которые отправляют и вызывают событие на стороне сервера, которое связывает данные с сеткой данных.

Например

Обработчики событий:

protected void lbtnOffset0_Click(object sender, EventArgs e)
{
    Session["Offset"] = 0;
    DataBind(); //this rebinds the data using the above argument
}
protected void lbtnOffset1_Click(object sender, EventArgs e)
{
    Session["Offset"] = lbtnOffset1.Text;
    DataBind(); //this rebinds the data using the above argument
}

В настоящее время в MVC у меня есть следующее:

     <%= Html.ActionLink("CurrentYr", "Index", 0)%>
     <%= Html.ActionLink("1", "Index", 1)%>

и

    public ActionResult Index()
    {
        return View(MietController.GetMietByYearOffset(0);
    }

    [AcceptVerbs(HttpVerbs.Post)]
    public ActionResult Index(int? offset)
    {
        int offsetValue = offset ?? 0;
        return View(MietController.GetMietByYearOffset(offsetValue);
    }

Поскольку ActionLink отображает тег, он не выполняет обратную передачу, поэтому мой перегруженный метод Index () не вызывается.Каковы мои варианты сделать это в MVC?

1 Ответ

1 голос
/ 04 февраля 2010

Попробуйте изменить ссылки для действий на:

 <%= Html.ActionLink("CurrentYr", "Index", new { offset = 0 } )%> 
 <%= Html.ActionLink("1", "Index", 1, new { offset = 1 } )%> 

И добавьте HttpVerbs.Get во второе действие Index.

Гиперссылки отправляются как GET-запросы. Это нормально, если ваше действие принимает их И вы обязательно добавите правильный аргумент в командную строку.

Вы также можете рассмотреть возможность создания этих AJAX ActionLinks, которые могут использовать POST, но вам потребуется указать, куда загружается новый контент. Также может потребоваться изменить действие, чтобы оно возвращало частичное представление при запросе через AJAX, чтобы вы возвращали не всю страницу, а только обновленную часть.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...