1

我的 web-api 控制器有一个 GET 方法来使用路由搜索域可用性:api/domain/query/

我想构建一个获取此路径的表单(顺便说一下,您认为 POST 在这种情况下更好吗?)

这是废话/坏/错误,但这是我到目前为止的地方(PS我希望表格有一个ID)。Model.Name 是域名:

@using (Html.BeginForm("query", "api/domain", FormMethod.Get, new { id = "domain-query" }))
{
    @Html.ValidationSummary(true)
    <div class="editor-field">
        @Html.EditorFor(Model => Model.Name)
        @Html.ValidationMessageFor(Model => Model.Name)
    </div>
    <p>
        <input type="submit" value="Search" />
    </p>
}

这将导致:api/domain/query?Name=test而不是api/domain/query/test

感谢您的帮助,我知道这是一个菜鸟问题,抱歉。

4

1 回答 1

1

这里有几件事:

1) 不要在表单中使用 GET。除非在特殊情况下,否则应该以这种方式发布 MVC 表单。

2)你BeginForm错了。您需要具有此重载的操作名称和控制器名称,但大多数时候您不必担心它。同样,在大多数情况下,您会想要

@using (Html.BeginForm())

像这样。

当提示输入控制器时,您也不想为控制器放置“路径”。如果您的控制器名称是AppController字符串,controller则应该是App.

看看这个例子,我预计你会遇到很多其他问题。在你思考它应该如何工作之前,你将有很多问题需要解决。我强烈建议通过“Nerd Dinner”教程来了解如何编写 MVC 代码。

于 2012-04-24T11:40:05.043 回答