Передача текстового поля из представления в кнопки
Вид:
@using (@Html.BeginForm("Show", "test", FormMethod.Post))
{
<fieldset>
<table >
<tr>
<td>
@Html.LabelFor(model=> model.Show)
</td>
<td>
@Html.TextBox("txtvalue", null)
</td>
</tr>
</table>
<input type="button" value="Show" onclick = "@("location.href='"+ @Url.Action("Show", "test")+"'" )" />
<input type="button" value="Go" onclick ="@("location.href='"+ @Url.Action("Go", "test")+"'" )"/>
</fieldset>
}
и два метода действий в контроллере,
public ActionResult Show(string txtvalue)
{
...
}
public ActionResult Go(string txtvalue)
{
...
}
на котором была нажата кнопка, она должна перейти к соответствующему методу действия и передать значение текстового поля.
Может ли кто-нибудь предложить мне способ сделать это. Я обнимаю голову, не мог понять.
Ответы
Ответ 1
Попробуйте это,
<input type="button" value="Show" onclick = "location.href='@Url.Action("Show", "Foo")'"/>
<input type="button" value="Go" onclick = "location.href='@Url.Action("Go", "Foo")'"/>
UPDATE:
Поскольку type="button"
не отправляет значения в форме, его невозможно напрямую выполнить то, что вы просили, лучшая идея заключается в определении кнопки, которая была нажата в методе контроллера, как показано в эта ссылка
Ответ 2
Попробуйте что-то вроде:
<input type="button" value="Show" onclick="location.href='<%:Url.Action("Show", "ControllerName")%>'"/>
<input type="button" value="Go" onclick="location.href='<%:Url.Action("Go", "ControllerName")%>'"/>
Если вы публикуете больше данных формы, вы можете использовать Ajax, см. Создание простого вызова Ajax для контроллера в asp.net mvc
Ответ 3
Попробуйте это
<input type="button" value="Show" onclick="location.href='<%: Url.Action("Show", "Controller") %>'" />
<input type="button" value="Go" onclick="location.href='<%: Url.Action("Go", "Controller") %>'" />