将js代码中的值赋给mvc razor的隐藏字段

时间:2015-11-20 11:48:10

标签: javascript c# jquery .net asp.net-mvc

如果我在内部剃刀视图中已经定义了隐藏字段,如

@Html.HiddenFor(m => m.MyHiddenId)

如何从内联js代码

填充此内容
var someNr = 100;
  

如何将这个someNr值赋给m.MyHiddenId属性?

4 个答案:

答案 0 :(得分:17)

id

添加明确的@Html.HiddenFor属性
@Html.HiddenFor(m => m.MyHiddenId, new { id = "hat" }) 

然后使用jQuery:

var someNr = 100;
$('#hat').val(somNr); 

对于那些没有jQuery的人

document.getElementById("hat").value = somNr;

根据以下答案,如果没有明确的ID,HiddenFor会将属性ID设置为MyHiddenId。所以,这也会起作用:

var someNr = 100;
$('#MyHiddenId').val(someNr);

或者没有jQuery:

document.getElementById("MyHiddenId").value = somNr;

答案 1 :(得分:2)

MVC会将该字段的ID设为“MyHiddenId”

因此,对于Jquery,您可以按如下方式设置它:

$("#MyHiddenId").val(someNr);

答案 2 :(得分:1)

您可以使用:

$(function(){
    var someNr = 100;
    $('#MyHiddenId').val(someNr);
});

注意:

  • 如上所述,最好在文档中执行分配。这样,将上面的代码放在哪里并不重要,并且在引用jquery之后就足够了;如果你直接使用$('#MyHiddenId').val(someNr);,它应该在你的html标签创建后的某个地方,否则它看不到隐藏。
    此外,如果该值依赖于任何其他值,或者该值依赖于ajax请求设置,则建议将其置于就绪状态。
  • 由于您使用的是帮助程序,因此隐藏的ID属性为MyHiddenId,您无需手动设置。

答案 3 :(得分:1)

首先,你需要assign ID来控制你,你知道control ID at compile time

  

@ Html.HiddenFor(m => m.MyHiddenId,new {id =" MyHiddenId"})

Jquery Code:-
  

var someNr = 100;

     

$(' #MyHiddenId).VAL(somNr);

JavaScript Code:-
  

var someNr = 100;

     

document.getElementById(' MyHiddenId')。value = somNr;