调用javascript返回视图的控制器

时间:2013-05-29 17:01:19

标签: asp.net asp.net-mvc asp.net-mvc-3

我在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();
}

请告诉我可用于呼叫控制器和发送参数的代码。

5 个答案:

答案 0 :(得分:1)

操作方法

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
});

答案 1 :(得分:0)

有几种方法可以做到这一点。 例如Ajax:

快速注释:确保在MVC路由配置中配置了一条路由以反映以下网址:

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
         } 
        }
    })
}

另一种方法是,如果要将View数据加载到DIV,则使用JQUery函数,例如.load();

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

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

$.ajax来电也可以被视为$.get$.post$.getJSON,具体取决于您希望对您的操作方法进行何种调用。还有更多内容。

最后一定要看看这个答案。您的问题实际上已经全部回答: Correct way to handle Ajax calls in ASP.Net MVC 3

答案 2 :(得分:0)

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

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

答案 3 :(得分: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的意图。

答案 4 :(得分:0)

使用JSONResult而不是ActionResult并在javascript中操纵返回数据。