ASP.NET MVC3 RAZOR:检索控制器中的隐藏字段属性值(使用ViewModel)
我有一个视图,它有两个按钮(“第一个”和“第二个”)和一个隐藏字段。当用户单击“第一个”按钮时,隐藏字段将设置为第一个按钮中“data myAttribute”属性的值。当用户点击“第二个”按钮时,隐藏字段将被设置为第二个按钮中“data myAttribute”属性的值。设置隐藏字段后,需要提交表单。下面的代码可以很好地处理这些内容。此外,我需要能够看到控制器中隐藏字段的值。我们如何获得控制器中的值ASP.NET MVC3 RAZOR:检索控制器中的隐藏字段属性值(使用ViewModel),asp.net,.net,asp.net-mvc,asp.net-mvc-3,razor,Asp.net,.net,Asp.net Mvc,Asp.net Mvc 3,Razor,我有一个视图,它有两个按钮(“第一个”和“第二个”)和一个隐藏字段。当用户单击“第一个”按钮时,隐藏字段将设置为第一个按钮中“data myAttribute”属性的值。当用户点击“第二个”按钮时,隐藏字段将被设置为第二个按钮中“data myAttribute”属性的值。设置隐藏字段后,需要提交表单。下面的代码可以很好地处理这些内容。此外,我需要能够看到控制器中隐藏字段的值。我们如何获得控制器中的值 namespace MyHiddenFieldTest.Controllers { publi
namespace MyHiddenFieldTest.Controllers
{
public class ElementController : Controller
{
public class MyViewModel
{
public string ControlName { get; set; }
}
// GET:
public ActionResult MyElement()
{
MyViewModel myViewModel = new MyViewModel();
return View(myViewModel);
}
// POST:
[HttpPost]
public ActionResult MyElement(MyViewModel theViewModel)
{
string selectedControl = theViewModel.ControlName;
return View(theViewModel);
}
}
}
看法
@model MyHiddenFieldTest.Controllers.ElementController.MyViewModel
@{
ViewBag.Title=“MyElement”;
}
MyElement
$(文档).ready(函数()
{
$('#mainDiv input[type=“button”]”)。在('click',函数()
{
$('#from').val($(this.attr('data-myAttribute'));
警报($('#from').val());
$(this).closest('form').submit();
});
});
@使用(Html.BeginForm())
{
}
阅读
ASP.Net MVC自动将动作参数绑定到表单帖子。
只需将参数中的
字符串添加到action方法
但是,您还需要name=”“
输入,以便浏览器提交它们
然而,实际上,您的整个脚本是不必要的
只要写
<input type="submit" name="from" value="First" />
<input type="submit" name="from" value="Second" />
浏览器将提交所单击按钮的名称/值对。我们不能将其作为ViewModel的一部分吗?@Lijo:当然可以。只需添加一个属性。谢谢。当我改为“并遵循您的建议时,它起了作用。也感谢您的明确解释。我只是想知道为什么会有“-1”。[但我尊重表达您意见的自由。]请让我知道它是否是任何其他问题的副本或任何不适合本论坛的问题。
<input type="submit" name="from" value="First" />
<input type="submit" name="from" value="Second" />