Ссылка действия не будет вызывать публикацию http и не будет передавать значения полей вашей формы, только http get и не проходить через какие-либо данные формы - в идеале вы должны использовать кнопку ввода для отправки данные. Не вызывает сомнений то, что эффективная практика заключается в том, что любой запрос, который вызывает создание / обновление данных, должен выполняться через сообщение http.
Кнопка «Отправить» будет выглядеть так.
<input type="submit" value="Send" />
Затем у вас есть несколько способов доступа к данным формы. Во-первых, вы можете использовать FormCollection для доступа к данным
[HttpPost]
public ActionResult SendEmail(FormCollection collection)
{
string email = collection["txtEmail"];
...
}
Во-вторых, вы можете использовать параметры метода и полагаться на привязку модели, но вы должны убедиться, что имена полей соответствуют имени параметра, поэтому
<%: Html.TextBox("txtEmail", "", new { style = "width:100%" })%>
... потребуется ...
[HttpPost]
public ActionResult SendEmail(string txtEmail)
{
...
}
Если эта форма не публикуется с тем же действием, которое возвращает представление, вам также необходимо изменить тег начала формы, в идеале вам следует также использовать «использование» с ним. Итак, вы получите:
<% using (Html.BeginForm("SendEmail", "<controller-name>"))
{ %>
.... form fields in here ...
<input type="submit" value="Send" />
<% } %>
Если кнопка не подходит для вашего дизайна, вы можете использовать что-то вроде:
<input type="image" src="<%: Url.Content("~/Content/images/myimage.gif") %>" value="Send" />
Это будет иметь тот же эффект. Чтобы вызвать публикацию из тега, хотя вам нужно было бы использовать javascript, я не могу вспомнить точный синтаксис, но не думаю, что, если бы вы использовали jquery, вы бы смотрели что-то вроде: (создайте одну форму только страница)
<a href="#" click="$('form').submit(); return false;">Send</a>
Но затем вы создаете зависимость от javascript, где, как и на самом деле, вы должны стараться, чтобы ваш сайт изящно ухудшался, чтобы его могли использовать посетители с отключенным javascript. Возможно, существует более продвинутый способ достижения этого, при этом отвечая требованиям проектирования, но он может в значительной степени проникнуть в код на стороне клиента, который, вероятно, выходит за рамки того, что вы хотите для своего образца.