Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net mvc 3 如何在mvc3中将数据从razor视图传递到控制器?_Asp.net Mvc 3_Razor - Fatal编程技术网

Asp.net mvc 3 如何在mvc3中将数据从razor视图传递到控制器?

Asp.net mvc 3 如何在mvc3中将数据从razor视图传递到控制器?,asp.net-mvc-3,razor,Asp.net Mvc 3,Razor,我有一个模型,我用它将数据从我的视图传递到我的控制器,但我有一些未绑定的文本框和下拉列表。如何使用ViewData或ViewBag…或其他方法将未绑定的数据从视图传递回控制器。谢谢 你能举个例子吗?看起来你的术语有点混淆了。除了通过POST/GET之外,通常不会将数据从视图传递到控制器。我想这就是你的意思。您可以通过同名参数或使用FormCollection将任何数据输入控制器的操作方法 public ActionResult SomeMethod(

我有一个模型,我用它将数据从我的视图传递到我的控制器,但我有一些未绑定的文本框和下拉列表。如何使用ViewData或ViewBag…或其他方法将未绑定的数据从视图传递回控制器。谢谢

你能举个例子吗?看起来你的术语有点混淆了。除了通过
POST/GET
之外,通常不会将数据从视图传递到控制器。我想这就是你的意思。您可以通过同名参数或使用
FormCollection
将任何数据输入控制器的操作方法

public ActionResult SomeMethod(
                       string yourUnboundTextBoxName, 
                       FormCollection colleciton) { }
在您看来,它可能有如下内容:

<div>
    <input type='text' name='yourUnboundTextBoxName' />
</div>


MVC将自动获取
yourUnboundTextBoxName
的值,并将该值插入到同名参数中。或者您可以使用
FormCollection
从中获取值
FormCollection[“yourUnboundTextBoxName”]

您不能使用ViewBag将数据从视图传递到控制器。视图(或至少是从视图生成的HTML)可以使用表单将数据发布回控制器,默认绑定器允许您将对象作为控制器方法的参数提供

如果需要大量数据,可以使用正确的命名准则和默认活页夹传递数组等


除此之外,您还需要为我们提供其他数据。

您可以通过多种方法将模型发送回控制器。这只是其中之一。因为您似乎一次只希望返回几个项目,可能是动态的,所以这种方法让您可以控制要返回的内容,然后使用.ajax()请求来完成

从上面的链接:

$.ajax({ url: '@Url.Action("ControllerActionResult")', type: 'POST', data: JSON.stringify(model), //you can serialize a form here as well OR simply put in the name value pairs of your data, ex. myTextBox='something' dataType: 'json', processData: false, contentType: 'application/json; charset=utf-8', success: OnSuccess }); $.ajax({ url:'@url.Action(“ControllerActionResult”), 键入:“POST”, data:JSON.stringify(model),//您也可以在这里序列化一个表单,或者只需输入数据的名称-值对,例如myTextBox='something' 数据类型:“json”, processData:false, contentType:'application/json;charset=utf-8', 成功:成功 }); 注意ajax文档

你是什么意思?请告诉我们你想做什么。你所说的“传递未绑定数据”是什么意思?你的回答引导我朝着正确的方向去做我想/需要做的事情。结合这个答案,我能够将隐藏的输入值发回控制器操作方法到一个未绑定的列表中。太好了!:-)我现在不能投票支持你的答案,因为我今天没有更多的选票。我会让Firefox标签打开4个多小时,这样我可以投票支持你…=]