Я хочу получить значение из текстового поля в моем представлении asp.net mvc.получить значение от Html.TextBoxFor
<%: Html.TextBoxFor(m => m.UserName, new { @class = "flat" })%>
Я хочу получить значение из текстового поля в моем представлении asp.net mvc.получить значение от Html.TextBoxFor
<%: Html.TextBoxFor(m => m.UserName, new { @class = "flat" })%>
Если вы хотите получить значение из формы поста, MVC автоматически связать его с любыми параметрами, которые соответствуют имени свойства. Так что если вам форму отправил к действию MyPost это будет выглядеть следующим образом:
public ActionResult MyPost(string UserName) { //Not case sensitive, you can do userName as well
var a = UserName;
}
Если у вас есть много полей для размещения, вы можете захотеть использовать объект запроса. MVC автоматически свяжет свойства с тем же именем.
public class MyRequest {
public string UserName { get; set; }
}
public ActionResult MyPost(MyRequest request)
Имя пользователя будет заполнено почтой.
Если вы хотите, чтобы вытащить значения с помощью JavaScript, вы, вероятно, хотите поставить идентификатор на HTML, как так:
Html.TextBoxFor(m => m.UserName, new { @class = "flat", id = "my-textbox" })
Затем вы можете использовать JQuery или что вы хотите выбрать элемент с это имя, предполагая, что вы хотите только это свойство и не будете перечислять кучу полей формы.
Если предположить, что ваш текстовое поле внутри формы, и вы представили его, вы можете найти значение внутри модели, которую Вы создали, или через formCollection
так:
синтаксиса Razor
@model Model_A
@using (Html.BeginForm())
{
@Html.TextBoxFor(m => m.UserName, new { @class = "flat" })
<input type="submit" value="Submit"/>
}
контроллер (Используйте любой из следующих)
public ActionResult ActionName(Model_A viewModel, FormCollection formCollection)
{
viewModel.UsernName
//or
formCollection.GetValue("UserName").AttemptedValue
//or
formCollection["UserName"]
}
... или если вы представить без form
(например, с помощью JQuery & Javascript)
Javascript
function Submit() {
var usr= document.getElementById('UserName').value;
$.ajax({
type: "POST",
url: '@Url.Action("ActionName2")',
data: "UserName=" + usr
});
return true;
}
Ваш контроллер будет необходимо иметь отдельные свойства, в качестве входных данных для имущих какой метод вы 're подчиняется.
Контроллер
public ActionResult ActionName2(string UserName)
{
}
ли вы имеете в виду получение значения через форму пост к серверу, или через JavaScript в браузере? –
@ Michael Yoon: Whatever :) – Nothing
Вы можете использовать строковое значение = Request.Form ("UserName"); если вы хотите, чтобы textBox ввел значение в действие вашего контроллера, отправьте .... – RollerCosta