|
非BUG,你要理解一个重要的概念,MVC中所有你要在后台获取的值,都要在前台传入。
FineUIMvc提供了一个非常简单的方便,通过传入面板的ID值就行了:
- @{
- ViewBag.Title = "Hello";
- var F = @Html.F();
- }
- @model FineUIMvc.EmptyProject.Models.test
- @section body {
- @(F.Button()
- .Text("点击弹出对话框")
- .ID("btnHello")
- .OnClick(Url.Action("btnHello_Click"), "Panel1")
- )
- @(F.Panel()
- .ID("Panel1")
- .Items(
- F.TextAreaFor(m => m.name),
- F.CheckBoxFor(m => m.isEnable)
- )
- )
- }
复制代码
- public ActionResult Hello()
- {
- var add = new test();
- add.name = " 测试F.CheckBoxFor,无法获取状态";
- add.isEnable = true;
- return View(add);
- }
- [HttpPost]
- [ValidateAntiForgeryToken]
- public ActionResult btnHello_Click([Bind(Include ="name,isEnable")] test test1)
- {
- if (test1.isEnable)
- {
- Alert.ShowInTop("选中", MessageBoxIcon.Warning);
- }
- else
- {
- Alert.ShowInTop("没有选中", MessageBoxIcon.Warning);
- }
-
- return UIHelper.Result();
- }
复制代码
注意,我只修改了两个地方:
1. 指定需要传入后台的数据为Panel1面板里的控件:.OnClick(Url.Action("btnHello_Click"), "Panel1")
2. 面板定义为Panel1,方便引用:F.Panel().ID("Panel1")
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|