Asp.net mvc 3 将表单数据作为类型化viewmodel提交到操作
我希望在表单中提交数据,而不使用提交按钮,而使用具有单击事件的简单div,所有这些数据都应该作为强类型视图模型由控制器的操作接收。Asp.net mvc 3 将表单数据作为类型化viewmodel提交到操作,asp.net-mvc-3,http-post,Asp.net Mvc 3,Http Post,我希望在表单中提交数据,而不使用提交按钮,而使用具有单击事件的简单div,所有这些数据都应该作为强类型视图模型由控制器的操作接收。 <script type="text/javascript"> function doAction() { $.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) { }); } 例如,我有以下html <form method="POS
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
例如,我有以下html
<form method="POST" id="frm" name="frm">
<input type="text" name="Texting"/>
<select name="Car">
<option value="volvo">Volvo</option>
<option value="saab">Saab</option>
<option value="opel">Opel</option>
<option value="audi">Audi</option>
</select>
<input type="checkbox" name="IsChecked" checked="checked"/>
</form>
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
以及视图模型
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
public class TestViewModel
{
public string Texting;
public string Car;
public bool IsChecked;
}
调用该操作时,问题是即使我在控件中输入了一些内容,模型也没有值
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
怎么了?为什么mvc不将我的数据解释为viewmodel?在Jquery Doaction()函数中。按如下所示准备viewmodel
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
var model={
Texting:$('#IdForInputText').val(),
Car:$('#IDforSelectList').val(),
IsChecked:$('#IDForCheckBox').is(':checked'),
}
或
然后使用
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}
JSON.stringify(model)
希望有帮助。如果不理解请留下评论问题是我不知道控件的ID,它们是由字段名+Guid生成的,这是我的团队领导的决定。因此,我不能在那里放一些类似短信的东西:$(“#Texting_12df3_23232_ert56_3434343”),val()看起来不太好。相反,我仍然有一个表单,它封装了一堆EditorFor(model.Texting),等等,所以我需要一些方法来将表单解释为ViewModel,当它传递给控制器的Action时,有很多方法可以通过jquery检索html元素,不仅仅是通过id查看更新的答案从我看到的,唯一的解决方案是从客户端创建模型?亲爱的,可能还有其他方法,但我已经告诉过你我觉得更容易和更适合客户端的方法?但是guid的理念是拥有唯一的id。通过使用输入[name=“IsChecked”]我可以选择多个控件并将其放入单个变量中,这不好。我需要将该表单作为一个整体,并在服务器上解析它,作为特定的ViewModel。我如何才能做到这一点?
<script type="text/javascript">
function doAction() {
$.post("DoAction",JSON.stringify($("#frm").serialize()), function(data) {
});
}