如何设置模型值与视图元素文本在javascript (MVC 4)
how to set model value with view element text in javascript (MVC 4)
我想让我的模型由视图元素的值设置。然后在javascript中以model属性值作为参数调用控制器中的方法。
做这件事的最好方法是什么?
类似:
@Model.Attribute = $(ElementId).val(); //<- how can I do this?
'@Html.Action("GetPeople", new { id = @Model.Attribute})';
我一直在调查,但我找不到这样做的方法。我阅读并尝试视图和模型之间的绑定。但是当我调用@Model。属性,该值始终为default。即使我改变了文本框的值,模型属性也不会改变。
@Html.TextBoxFor(m => m.Code, new { id = "txtAttribute"})
我在控制器中绑定了模型属性正如你所看到的
public ActionResult Index()
{
var model = new MyModel();
View("Default", model);
}
我试过很多事,但都失败了
var modelattribute = '@Model.Attribute';
modelattribute = '@ViewData["ModelAttribute"]';
modelattribute = '@Html.Raw(Model.Attribute)'
modelattribute = '@Html.raw(json.encode(Model.Attribute))'
这可能吗?还是我需要改变我的算法?
UPDATE: my model code
public class MyModel
{
public string Attribute{ get; set; }
}
非常感谢。Nelssen
你可以设置一个javascript变量的值从你的模型喜欢:var modelattribute = "@Model.Attribute";
至于将模型数据传递到控制器,到目前为止最简单的方法是使用隐藏表单元素:
//JAVASCRIPT
function postDataToController() {
var form = document.createElement("form");
form.setAttribute("action", "submitFormData");
var hiddenElement = document.createElement("input");
hiddenElement.setAttribute("name","attributeName");
$(hiddenElement).val("attribute value");
$(form).append(hiddenElement);
$(form).submit();
}
//C#
[HttpPost]
public void submitFormData(MyModel model) {
System.Collections.Specialized.NameValueCollection nvc = Request.Form;
model.Attribute = nvc["attributeName"];
}
相关文章:
- 如何在浏览器中选择所有*renderable*文本元素
- 如何使用RaphaelJS将文本元素约束在正方形中
- 使用d3.js删除svg文本元素
- 替换动态生成的文本元素
- Protractor测试:如何设置登录表单中文本元素的值
- 如何获取与提交表单上所选复选框相同行的文本元素
- SVG文本锚点设置使文本元素移动
- Svg文本元素被另一个Svg元素重叠
- Imacros替换文本元素
- Windows 8 上的 Safari 5 反转 SVG 上的所有文本元素
- 运行 PHP 代码以根据文本元素的值从数据库中获取值
- 我想要输入文本元素中的实时更改事件
- 如何使用 jQuery 忽略文本元素上的特定字符
- RaphaelJS中的文本元素不会在触摸设备上拖动
- d3 - 旋转数组中的文本元素
- 如何通过单击复选框将文本元素从输入复制到另一个输入
- .text() 给出元素中的所有文本元素
- 在函数内调用对象文本元素
- 移动文本元素与弧拉斐尔JS
- 编辑文本元素时,将重置后端用户设置