Asp.net mvc MVC:对控制器操作的ajax调用传递的参数少于所需的参数,但仍然有效,它是如何工作的?
我的查看页面上有此功能Asp.net mvc MVC:对控制器操作的ajax调用传递的参数少于所需的参数,但仍然有效,它是如何工作的?,asp.net-mvc,model-view-controller,Asp.net Mvc,Model View Controller,我的查看页面上有此功能 var params = { Param1: $('#as').val(), Param2: $('input[name=dswe]').val(), Param3: $('inpu`enter code here`t:radio[name=wer]:checked').val() } $.ajax({ typ
var params = {
Param1: $('#as').val(),
Param2: $('input[name=dswe]').val(),
Param3: $('inpu`enter code here`t:radio[name=wer]:checked').val()
}
$.ajax({
type: 'POST',
url: 'controlleractionname',
data: params,
error: function(xhr, ajaxOptions, thrownError) {
alert(xhr.statusText);
},
success: function(html) {
$('#Message').html('MRR Received Date SAVED');
closeDialog();
},
cache: false
});
这将在控制器页面上调用以下操作
public string controlleractionname(string param1, DateTime param2, int param3, Classdata data1)
{
code is here
}
现在,我的问题是,这工作非常好,但我想知道这是如何工作的?因为我只将3个参数从ajax传递给这个控制器操作。第四个参数是WCF服务的datacontract类
我这样问是因为这是一个工作应用程序,我是这个项目的新手,并试图了解其功能
欢迎任何输入。当ASP.NET MVC首先收到请求时,它会将其与路由匹配。您必须有一个与要发布到的URL匹配的路由 一旦ASP.NET MVC找到匹配项,它将实例化路由中指示的控制器,并调用路由中指示的操作方法 此时,ASP.NET MVC将经历一个过程,尝试从HTTP请求中查找信息(表单值、查询字符串参数等),并将其与操作的方法定义中定义的参数相匹配。例如,如果MVC找到查询字符串参数“param1”,它将自动将查询字符串值传递给方法中的“param1”。如果在请求中找不到值,它将传递一个默认值(例如,字符串为null,整数为0)
这是一个简单的解释,但我希望它能让你了解发生了什么 当你调用一个动作时,你不必提供所有的参数;为什么关于MVC架构的C#(或者其他一些.NET风格,实际上不确定)问题经常只提到
MVC
标签,好像C#垄断了MVC
?换句话说:请添加一个合适的语言标签来配合它。(我不确定这是否真的是C#,否则我会添加正确的标记)。