如何在mvc3中将数据从剃须刀视图传递给控制器​​?

我有一个模型,我正在使用从我的视图传递数据到我的控制器,但我有一些从文本框和下拉列表中解除绑定。 我该如何将未绑定的数据从我的视图传递回使用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()请求执行此操作。

Asp.Net MVC将View中的Url.Action对象传递给Controller

从上面的链接:

$.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文档jQuery .ajax()

链接地址: http://www.djcxy.com/p/83475.html

上一篇: How to pass data from razor view to controller in mvc3?

下一篇: Jquery create element initially hidden