求助:mvc3 js获取页面model里的值

lc402431247 2012-08-23 01:38:05
cshtml页面部分代码:
div class="col-sub">
@using (Html.BeginForm("SaveTTMallConfig", "TTMall", FormMethod.Post, new { id="J_ttmall_form"}))
{
<div>
<fieldset>
<div id="J_ttmall_config2" class="">
<div class="editor-field">
<label class="hd">
模板主题:</label>
@Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal)
</div>
<div class="editor-field">
<label class="hd">
模板规格:</label>
@Html.RadioButtonListFor(m => m.Size, "mallSize", System.Web.UI.WebControls.RepeatDirection.Horizontal)
</div>
<script>
//在这里获取m.Scheme,m.Size的值
//不考虑根据html结构找id等等方法
//直接获得form封装后的 key value 可以
//直接获得更改后的model.Scheme等的值 可以
</script>



如上所述,在js中获得表单提交的各个值,或者获得model更改后的值,请帮忙小弟,不胜感激!
...全文
8952 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
狐狸大仙 2014-11-05
  • 打赏
  • 举报
回复
表单里的变动过的值不就是控件值么? 比如 $("#Scheme").val(); 就可以获得了吧? @Html.RadioButtonListFor 生成对应的html代码的id 就是 Scheme。前台获取自然是通过控件id拿喽。 复杂需求的话,我习惯用 knockout 做前台的模型绑定,我感觉楼主的需求和knockout更接近一些?
杰拉尔 2012-08-23
  • 打赏
  • 举报
回复
MVC CV 联动的原理大致就这样。楼主参考。
杰拉尔 2012-08-23
  • 打赏
  • 举报
回复
表单提交=> 找到controller中的action =>接收参数并根据参数反回相应的MODEL 然后找到VIEW 根据MODEL绑定显示
然后
表单提交=> 找到controller中的action =>接收参数并根据参数反回相应的MODEL 然后找到VIEW 根据MODEL绑定显示
然后
表单提交=> 找到controller中的action =>接收参数并根据参数反回相应的MODEL 然后找到VIEW 根据MODEL绑定显示
IT_大仙 2012-08-23
  • 打赏
  • 举报
回复
可以试试通过js遍历表单个元素,然后通过判断是否为radio类型 如果是取出radio的值
  • 打赏
  • 举报
回复
注意,我上面写的不是表单提交代码,而是初次访问页面的时候访问当前页面对应ID的Model,并返回在页面上

就像WebForm中的,修改用户信息一样,进入修改页面,你肯定先根据当前ID查询之前的字段值呀,比如用户名,性别,爱好,然后显示在页面上,提交的时候在根据你修改的进行提交呀,也就是说在修改页面,用户肯定要先看到自己之前的信息,而这些是提交之前的

而上面的代码正是在提交之前的初始化页面操作


怎么?换了一个环境就转不过来了?

真正的提交代码,应该如下呀,传过来修改的模型呀

[HttpPost]
public ActionResult Edit(Bif model)
{
BIF bif = db.BIF.Single(b => b.Id == id);
bif.UserName=model.UserName;
//.........
return View(bif);
}


lc402431247 2012-08-23
  • 打赏
  • 举报
回复
晕,我就是在表单未提交之前,不与controller交互获取,js中获取表单项的值
  • 打赏
  • 举报
回复
修改的控制器代码类似如下,根据ID得到返回Model
//
// GET: /BIFRequest/Edit/5

public ActionResult Edit(int id)
{
BIF bif = db.BIF.Single(b => b.Id == id);
return View(bif);
}

然后页面上就可以得到这个model
页面最顶端接受这个model,类似如下
@model Dimei.MSBIF.Web.Models.BIF

@{
ViewBag.Title = "Edit";
}

那么js就可以如下得到(假设返回的bif模型中含有属性Name)
 var name='@Model.Name';
lc402431247 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 的回复:]

引用 2 楼 的回复:
HTML code


<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>


这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像
Scheme,Size等,而这个Model是从数据库里查出……
[/Quote]
用户操作过程:打开页面->填写修改表单->点击预览->保存(提交表单)
我要在用户 填写修改表单-至(获取表单各项值)-保存 这个过程中获取表单的值.
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
HTML code


<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
[/Quote]

这个本身就是动态的,你在控制器中已经向页面返回了Model,而这个Model中,当然会包含你的那些属性,像
Scheme,Size等,而这个Model是从数据库里查出来的,当你修改了之后,刷新页面,控制器会根据地址栏的ID查询该ID的记录,然后向页面返回这个Model,都已经得到了,还要赋值给隐藏域?这不是表单提交
lc402431247 2012-08-23
  • 打赏
  • 举报
回复
或者有没有方法,在知道表单id的情况下,获得当前表单里面的各项的值.
lc402431247 2012-08-23
  • 打赏
  • 举报
回复
是经过表单更改后的model的各个项的值
lc402431247 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]

不建议这么写可以将MODEL的值赋给hidden通过JS获取
[/Quote]
@Html.RadioButtonListFor(m => m.Scheme, "mallScheme", System.Web.UI.WebControls.RepeatDirection.Horizontal)
我要获得这个m.Scheme的值,页面是传进来一个model.scheme,不过那个是静态的,我要获得是值表单里面的,是动态的.
宝_爸 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

var ss =' @Model.Scheme';
相当于webfrom中的
var ss='<%=xx%>'
[/Quote]

如果可以的话, 这个办法好。
杰拉尔 2012-08-23
  • 打赏
  • 举报
回复
不建议这么写可以将MODEL的值赋给hidden通过JS获取
lc402431247 2012-08-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

HTML code

<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
[/Quote]
这个是静态的,不是动态的值呀.
杰拉尔 2012-08-23
  • 打赏
  • 举报
回复
var ss =' @Model.Scheme';
相当于webfrom中的
var ss='<%=xx%>'
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]
应该不行吧。javascript只能取得页面上的值。

不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
[/Quote]

如果控制器像页面返回了当前Model,那么在JS中是可以那么获取的
宝_爸 2012-08-23
  • 打赏
  • 举报
回复
应该不行吧。javascript只能取得页面上的值。

不过你可以将m.Scheme,m.Size的值赋给hidden field,再在javascript中取。
  • 打赏
  • 举报
回复

<script type="text/javascript">
var ss = '@Model.Scheme;
alert(ss);
</script>
ybyjcel 2012-08-23
  • 打赏
  • 举报
回复
不懂,帮顶一下。

62,050

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧