MVC 4根据复选框检查来显示/隐藏文本框
MVC的新手 - 绝不是前端Web开发人员(主要是后端),所以我对前端的优秀设计不太了解。 现在,我正在尝试使用MVC,而没有太多原始的WebForm知识......据说,请给我一些关于如何处理以下内容的指针/链接/好点子:
我有一个基于复选框显示/隐藏的文本框字段。 我在View中使用这些字段@using(Html.BeginForm()...
我应该更改JavaScript或控制器操作中文本框的属性吗? 如果我使用javascript,我很难在beginform中获得值,但是如果我使用控制器操作,我不确定在控制器操作中如何/从哪里传入。
如果我想操作DOM,我喜欢使用jQuery。
这里的例子 -
视图
@using (Html.BeginForm())
{
@Html.CheckBoxFor(model => model.MyBooleanValue)
<br />
@Html.TextBoxFor(model => model.MyTextValue)
<br />
<input type="submit" value="Submit" />
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script>
$(function () {
$("#MyBooleanValue").click(function () {
if ($(this).is(':checked')) {
$("#MyTextValue").show();
}
else {
$("#MyTextValue").hide();
}
});
});
</script>
调节器
public class HomeController : Controller
{
public ActionResult Index()
{
var model = new MyViewModel
{
MyBooleanValue = true
};
return View(model);
}
[HttpPost]
public ActionResult Index(MyViewModel model)
{
if (model.MyBooleanValue)
{
string text = model.MyTextValue;
}
return View(model);
}
}
模型
public class MyViewModel
{
public bool MyBooleanValue { get; set; }
public string MyTextValue { get; set; }
}
仅供参考:我建议观看一些视频培训(ASP.NET MVC 5基础知识免费课程)或在开始之前阅读一两本书。 否则,你会感到沮丧。
任何你在视图上改变的东西(前端UI操作)都应该用Javascript来完成,除非你从数据库中获取或设置一些数据。 在这种情况下,它看起来像它没有数据操作,所以它纯粹的JavaScript UI操作
你想要做的是给你的文本框和你的输入一个类或ID,以便您可以访问它们与JavaScript。 然后使用它,您可以决定复选框是否被选中/取消选中以隐藏/取消隐藏文本框
这里有一些有用的链接让你开始:
检查复选框是否勾选javascript
检查复选框是否使用jQuery进行检查
jquery - 显示复选框选中时的文本框
如果勾选复选框,如何隐藏和显示项目
通常,您将访问您的服务器(控制器),主要用于将视图中的数据保存到数据库中,或从数据库中检索数据以显示在您的视图中。
在Html助手前设置ID。 @Html.TextBoxFor
你需要以下内容:
@Html.TextBoxFor(x => x.property, new { @id = "someId" }
如果你想要其他的html属性:
@Html.TextBoxFor(x => x.property, new { @id = "someId", @class="someClass" }