Вопрос

Существует множество примеров привязки модели в HTML-формах, но мне интересно, возможно ли и если да, то как использовать привязку модели для запросов ActionLinks/GET.

Итак, учитывая следующую модель

public class Lurl
{
  public string Str {get;set;}
  public char Chr {get;set;}
  public double Dbl {get;set;}
}

и следующий маршрут (я не уверен, как он будет сформирован;Я представляю его, чтобы показать, как мне хотелось бы, чтобы URL представлял свойства Str, Chr и Dbl)

routes.MapRoute(
    "LurlRoute",
    "Main/Index/{str}/{chr}/{dbl}",
    new
    {
        controller = "Main",
        action = "Index",
        lurl = (Lurl)null
    }
);

Я хотел бы использовать это таким образом в своем контроллере

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
  /* snip */
}

и так на моей странице (два возможных варианта;есть еще?)

<div class="links">
  <%Html.ActionLink("Link one", "Index", new { lurl = Model })%><br />
  <%Html.ActionLink("Link two", "Index", 
         new { str = Model.Str, chr = Model.Chr, dbl = Model.Dbl })%>
</div>

Возможно ли это с помощью инфраструктуры привязки модели?И если да, то что нужно сделать с моими образцами, чтобы они заработали?

Это было полезно?

Решение

Я думаю, вам придется выбрать либо класс в качестве параметра, либо подход

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(Lurl lurl)
{
   /* snip */
}

или свойства как параметры приближаются

[AcceptVerbs(HttpVerbs.Get)]
public ActionResult Index(string str, char chr, double dbl)
{
    /* snip */
}

...хотя в классе в качестве параметра вы можете использовать метод «UpdateModel».Вы можете передать белый список параметров, которые хотите обновить с помощью этого метода, на тот случай, если вы хотите обновить только несколько значений в своей модели.

Кроме того, в вашем MapRoute какой параметр будет отображать карту в вашем пути маршрута?Я почти уверен, что здесь должна быть корреляция один к одному.

Другие советы

Вы также можете использовать папка индивидуальной модели.Также читайте этот.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top