Как использовать значения скрытого поля из представления в контроллер в asp.net mvc 3
Мне нужно передать скрытые данные в действие контроллера. Поэтому я попытался следующим образом, но я получаю нулевые значения.
Я пробовал оба метода. я formelection и viewmodel concept
контроллер
public ActionResult MapIcon()
{
Hidden hd = new Hidden();
return View(hd);
}
[HttpPost]
public ActionResult MapIcon(Hidden hidden)
{
var value=hidden.hiddevalue;//null
FormCollection col = new FormCollection();
var value = col["hidden1"];
// string value = mycontroler.ControlName;
return View(hidden);
}
Просмотр
@model SVGImageUpload.Models.Hidden
Razor view:@using (Html.BeginForm(new { id = "postform" }))
{
<input type="hidden" id="" value="7" name="hidden1" />
<input type="hidden" id="" value="7" name="hidden2"/>
<input type="submit" value="Match"/>
}
ViewModel
public class Hidden
{
public string hiddevalue { get; set; }
}
Ответы
Ответ 1
Мне кажется, что вы пытаетесь получить несколько значений в контроллере POST. В этом случае, и по вашему экзамену, значение со скрытого ввода достаточно. В этом случае вы можете настроить свой контроллер так:
public ActionResult Index()
{
Hidden hd = new Hidden();
return View(hd);
}
[HttpPost]
public ActionResult Index(IEnumerable<string> hiddens)
{
foreach (var item in hiddens)
{
//do whatter with item
}
return View(new Hidden());
}
а для вашего представления просто измените его, чтобы связать одно имя "hiddens" следующим образом:
@using (Html.BeginForm(new { id = "postform" }))
{
<input type="hidden" value="7" name="hiddens" />
<input type="hidden" value="2" name="hiddens" />
<input type="submit" value="Match" />
}
Надеюсь, что это послужит тому, что вы ожидаете.
Ответ 2
Попробуйте это, в режиме Razor:
@using (Html.BeginForm(new { id = "postform" }))
{
@Html.HiddenFor(m=>m.hiddevalue)
<input type="submit" value="Match"/>
}
Ответ 3
если ваше скрытое значение статично. Попробуйте это
Просмотр
@using (Html.BeginForm(new { id = "postform" }))
{
@Html.HiddenFor(m=>m.hiddevalue)
<input type="hidden" id="" value="7" name="hidden1" />
<input type="hidden" id="" value="7" name="hidden2"/>
<input type="submit" value="Match"/>
}
контроллер
[HttpPost]
public ActionResult MapIcon(Hidden hidden, string hidden1, string hidden2)
{
var hiddenvalue = hidden.hiddevalue;
var hiddenvalue1 = hidden1;
var hiddenvalue2 = hidden2;
var value=hidden.hiddevalue;//null
FormCollection col = new FormCollection();
var value = col["hidden1"];
// string value = mycontroler.ControlName;
return View(hidden);
}
Script
$(document).ready(function () {
$('#hiddevalue').val("Jaimin");
});