C# can';t调用函数并使用mvc传递变量
我是MVC新手,我在网上查看了解决我问题的其他解决方案,但仍然找不到我的代码有什么问题,我使用的代码(原样)来自umbraco网站,我试图调用一个函数并从js传递一个var,我不明白问题出在哪里…,试图用在线示例解决它,但得到了相同的错误。。。帮助 //c# //jsC# can';t调用函数并使用mvc传递变量,c#,model-view-controller,umbraco7,C#,Model View Controller,Umbraco7,我是MVC新手,我在网上查看了解决我问题的其他解决方案,但仍然找不到我的代码有什么问题,我使用的代码(原样)来自umbraco网站,我试图调用一个函数并从js传递一个var,我不明白问题出在哪里…,试图用在线示例解决它,但得到了相同的错误。。。帮助 //c# //js angular.module('umbraco').controller('MokedLoginController'[ “$scope”, “$http”, “编辑状态”, “内容资源”, 函数($scope、$http、edi
angular.module('umbraco').controller('MokedLoginController'[
“$scope”,
“$http”,
“编辑状态”,
“内容资源”,
函数($scope、$http、editorState、contentResource){
//检查是否正在创建新成员
$scope.isNew=editorState.current.id这是什么[FromBody]在控制器中?错误消息表示您的参数需要是引用类型、可为null的类型或声明为可选参数。int
是不可为null的值类型,因此如果您希望您的参数是int
,则需要将签名更改为public void DoLogin([FromBody]int member=0)
(或任何其他默认值),以便接受它。@Abion47谢谢!它找到了函数,但参数是0,而不是我传递的参数。。
public class MokedLoginController : SurfaceController
{
[HttpGet]
[Route("umbraco/surface/MokedLogin/DoLogin/{id}")]
public void DoLogin([FromBody]int member)
{
var _member = Services.MemberService.GetById(member);
if (_member != null)
FormsAuthentication.SetAuthCookie(_member.Username, false);
}
}
angular.module('umbraco').controller('MokedLoginController', [
'$scope',
'$http',
'editorState',
'contentResource',
function ($scope, $http, editorState, contentResource) {
// Check if you are creating a new member
$scope.isNew = editorState.current.id <= 0;
// Define the login as member function
$scope.loginAsMember = function () {
// ### Setup cookie ????
var url = '/umbraco/surface/MokedLogin/DoLogin/{id}';
// Get the current member id using the editorState
var _memberId = editorState.current.id;
// Do Login
$http.post(
url, _memberId
).then(
function (response) {
// ### Redirect ????
// Get the redirect page from config
var urlPageRedirect = $scope.model.config.memberRedirectPage;
// Check if page is set in the config
if (urlPageRedirect)
{
contentResource.getNiceUrl(urlPageRedirect).then(function (data) {
window.open(data, '_blank') // Get the first url
});
} else {
// Open the root page
window.open('/', '_blank');
}
},
function (error) {
console.log(error.data);
}
);
};
}
]);
// Do Login
$http.post(