我们如何从Javascript将数据发送回Controller操作

时间:2009-12-17 13:48:52

标签: javascript asp.net-mvc

我有一个模态对话框,可以打开页面中的链接。从js现在我需要向Controller发送一些值。但是我不能使用表单从哪里可以将这些值提交给控制器。有没有其他方法可以做到这一点,还是我说疯了?

3 个答案:

答案 0 :(得分:1)

你可以使用这些方法作为No Refunds No Returns解释,但不是传回许多参数,你可以建立你自己的类来传回。

E.g。如果您传回工作的详细信息,您可以拥有一个名为Job的课程,其中包括薪水,工时,职称,部门等参数。

public class Job
{
  public float Salary {get; set;}
  public float Hours {get; set;}
  public string Title {get; set;}
  public string Department {get; set;}
}

然后,您可以创建一个控制器方法,该方法接收Job类型的对象。

public ActionResult DoSomething(Job theJob)
{}

然后在javascript中,您可以构建一个带有键值对的JSON对象。关键是参数的名称。

var data = {
  Salary: 400,
  Hours: 40,
  Title: 'Developer',
  Department: 'I.T.'
};

然后,您可以将此对象传递给控制器​​方法,并将值映射到Job对象,然后可以在控制器方法中使用该对象。

答案 1 :(得分:0)

数据通过URL返回。您更新路线以识别参数并构建要匹配的URL。

路线就像{controller} / {action} / {id} / {parameter1} / {parameter2} /

您还可以创建一个像

这样的catchall参数

路线就像{controller} / {action} / {id} / {* parameters} /

然后构建一个类似的URL yoursite.com/Accounts/DIsplay/Fred/june/july 参数将于6月/ 7月,您可以在您的URL上构建。

检查我的语法以确定,因为我在吃早餐时这样做。 :)

答案 2 :(得分:0)

使用JQuery,您可以使用:

$。得到 .post的$ $就

将数据发布回服务器。这一切都与用户异步发生。有关如何使用的信息,请参阅jquery.com,这非常简单。使用URL,它将知道要获取或发布数据的控制器/操作;它运作得很好。

使用URL将数据传回服务器,而post使用表单并将表单字段提交给服务器。所以这取决于你想要传递数据的方式。使用Html.BeginForm和Html.EndForm,您可以定义表单,并将其中的值发布到服务器,通过将FormCollection集合指定为操作方法参数或具有方法名称的对象类型,可以检索所有值与对象的属性本身相同,或者它也将这些值传递给变量。无论是获取还是后期操作,它都会进行名称匹配以完成所有这些操作。

所以这可以在MVC中使用回发​​或异步使用JQuery来完成。