dot net core web api project templates are different
I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.
For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller
Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult

Why is that?
Which option is the "best"? And why are they different?
asp.net-core
add a comment |
I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.
For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller
Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult

Why is that?
Which option is the "best"? And why are they different?
asp.net-core
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24
add a comment |
I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.
For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller
Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult

Why is that?
Which option is the "best"? And why are they different?
asp.net-core
I just compared the code generated by dotnet new webapi and dotnet new angular, and checked only the web api code.
For some reason controllers derive from different classes, in project created with dotnet new webapi controller is derived from ControllerBase, while in project created with dotnet new angular controller is derived from Controller
Also the return types for actions are different, in angular template its the actual return type, while in webapi template its ActionResult

Why is that?
Which option is the "best"? And why are they different?
asp.net-core
asp.net-core
asked Nov 20 at 15:01
monstro
1
1
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24
add a comment |
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24
add a comment |
2 Answers
2
active
oldest
votes
Before .NET Core Web API and MVC controllers were similar.
But starting with 2.0/2.1 Web API was changed.
Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.
Old style will continue to work anyway.
Angualar use Web API, I suppose, so template should be updated.
See WEb API documentation.
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
add a comment |
ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53395810%2fdot-net-core-web-api-project-templates-are-different%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
Before .NET Core Web API and MVC controllers were similar.
But starting with 2.0/2.1 Web API was changed.
Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.
Old style will continue to work anyway.
Angualar use Web API, I suppose, so template should be updated.
See WEb API documentation.
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
add a comment |
Before .NET Core Web API and MVC controllers were similar.
But starting with 2.0/2.1 Web API was changed.
Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.
Old style will continue to work anyway.
Angualar use Web API, I suppose, so template should be updated.
See WEb API documentation.
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
add a comment |
Before .NET Core Web API and MVC controllers were similar.
But starting with 2.0/2.1 Web API was changed.
Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.
Old style will continue to work anyway.
Angualar use Web API, I suppose, so template should be updated.
See WEb API documentation.
Before .NET Core Web API and MVC controllers were similar.
But starting with 2.0/2.1 Web API was changed.
Now you should derive class from ControllerBase instead Controller and use [ApiController] attribute.
Old style will continue to work anyway.
Angualar use Web API, I suppose, so template should be updated.
See WEb API documentation.
edited Nov 20 at 16:21
answered Nov 20 at 15:32
Alexan
4,25374874
4,25374874
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
add a comment |
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
But both projects created with the same version of dotnet core... just different templates
– monstro
Nov 20 at 15:38
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
this template will work anyway. If it used Web API, you can change manually.
– Alexan
Nov 20 at 16:01
add a comment |
ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.
add a comment |
ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.
add a comment |
ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.
ControllerBase doesn't have any of the Razor/view support. ControllerBase is used for APIs.
answered Nov 20 at 15:37
Daniel A. White
147k36293372
147k36293372
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53395810%2fdot-net-core-web-api-project-templates-are-different%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
web api is best, for angular it's old style
– Alexan
Nov 20 at 15:24