0

我在 ASP.Net MVC 中工作。我有以下 Javascript 代码,其中我正在调用返回视图的控制器方法。我想将参数发送到重新设置的控制器方法

function fun(p1,p2)
        {
          // code here to call controller method which returns view   
        }



public ActionResult ProblemDetails(p1,p2)
        {
           // here goes some code.
             return View();
}

请告诉我可以用来调用控制器和发送参数的代码。

4

5 回答 5

2

动作方法

public ActionResult SendStream(string a, string b)
{

}

jQuery/JSON

请注意,Get Verb由于它的Query string长度限制,它不支持复杂的数据参数。所以在发送大数据时使用POST Verb而不是GET Verb

$.ajax({
    url: url,
    data: JSON.stringify({ a: "a", b: "b" }), //Two String Parameters
    type: 'GET',                              //For Submit, use POST
    contentType: 'application/json, charset=utf-8',
    dataType: 'json'
}).done(function (data) {
    //Success Callback
}).fail(function (data) {
    //Failed Callback        
}).always(function(data) { 
    //Request completed Callback
});
于 2013-05-29T18:05:13.087 回答
0

您是否希望返回部分视图?您可以使用 jQuery ajax 发布到返回部分视图 (html) 的控制器方法。然后,您可以在页面上呈现该 HTML。

http://mazharkaunain.blogspot.com/2011/04/aspnet-mvc-render-partial-view-using.html

于 2013-05-29T17:12:32.463 回答
0

有几种方法可以做到这一点。例如阿贾克斯:

首先快速说明:确保在您的 MVC 路由配置中,您有一个配置为反映以下 url 的路由:

function fun(p1,p2)
{
     var url = '/ControllerName/ProblemDetails?p1=p1&p2=p2' //url to your action method

    $.ajax({
       url:url,
       type:'post' or 'get', //(depending on how you're doing this. If post you can pass data internally instead of query string ),
       dataType:'html', //(for example)
       success:function(data){
            //data here will contain your View info so you can append it do div for example. You can use JQuery .html() function for that
       error: function (xhr) {
        //catch error
         } 
        }
    })
}

另一种方法是,如果您想将视图数据加载到 DIV 是使用 JQUery 函数,例如 .load();

function fun(p1,p2)
{
     var url = '/ControllerName/ProblemDetails?p1=p1&p2=p2';

     $('#YourDivTagForExample').load(url);
 }

$.ajaxcall 也可以缩写为$.get$.post或者$.getJSON取决于你想对你的操作方法进行什么样的调用。还有很多。

最后一定要看看这个答案。您的问题实际上已经得到了完整的回答: 在 ASP.Net MVC 3 中处理 Ajax 调用的正确方法

于 2013-05-29T17:05:56.270 回答
0

使用 JSONResult 代替 ActionResult 并在 javascript 中操作返回数据。

于 2013-05-30T08:53:50.433 回答
0

jQuery.get是实现此目的的简写方式。

function fun(p1,p2)
{
    var url = '/controller/ProblemDetails?p1=' + p1 + '&p2=' + p2;
    $.get(url, function (data) {
      // data will be your response as html
    });
}

我可能还建议让操作返回 PartialView() 而不是 View(),因为您不会将布局与响应一起返回。这完全取决于您对返回的 html 的意图。

于 2013-05-29T17:16:16.543 回答