我在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();
}
请告诉我可用于呼叫控制器和发送参数的代码。
答案 0 :(得分:1)
public ActionResult SendStream(string a, string b)
{
}
请注意,由于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中操纵返回数据。