I have seen ASP.NET MVC Without Visual Studio, which asks,
Is it possible to produce a website based on ASP.NET MVC, without using Visual Studio?
And the accepted answer is, yes.
Ok, next question: how?
Here's an analogy. If I want to create an ASP.NET Webforms page, I load up my favorite text editor, create a file named Something.aspx. Then I insert into that file, some boilerplate:
<%@ Page Language="C#"
Debug="true"
Trace="false"
Src="Sourcefile.cs"
Inherits="My.Namespace.ContentsPage"
%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Title goes here </title>
<link rel="stylesheet" type="text/css" href="css/style.css"></link>
<style type="text/css">
#elementid {
font-size: 9pt;
color: Navy;
... more css ...
}
</style>
<script type="text/javascript" language='javascript'>
// insert javascript here.
</script>
</head>
<body>
<asp:Literal Id='Holder' runat='server'/>
<br/>
<div id='msgs'></div>
</body>
</html>
Then I also create the Sourcefile.cs file:
namespace My.Namespace
{
using System;
using System.Web;
using System.Xml;
// etc...
public class ContentsPage : System.Web.UI.Page
{
protected System.Web.UI.WebControls.Literal Holder;
void Page_Load(Object sender, EventArgs e)
{
// page load logic here
}
}
}
And that is a working ASPNET page, created in a text editor. Drop it into an IIS virtual directory, and it's working.
What do I have to do, to make a basic, hello, World ASPNET MVC app, in a text editor? (without Visual Studio)
Suppose I want a basic MVC app with a controller, one view, and a simple model. What files would I need to create, and what would go into them?
Best Answer
ok, I examined Walther's tutorial and got a basic MVC site running.
The files required were:
That's it.
Inside the Global.asax, I provide this boilerplate:
And that
MvcApplication
class is defined in a module called Global.asax.cs which must be placed into the App_Code directory. The contents are like this:The Controller.cs provides the logic to handle the various requests. In this simple example, the controller class is like this:
The Controller class must be named
XxxxxController
, where the Xxxxx portion defines the segment in the URL path. For a controller calledHelloWorldController
, the URL path segment isHelloWorld
. Each public method in the Controller class is an action; the method is called when that method name is included in another segment in the url path . So for the above controller, these URLs would result in invoking the various methods:Each method returns an Action result, one of the following: View (aspx page), Redirect, Empty, File (various options), Json, Content (arbitrary text), and Javascript.
The View pages, such as Sample.aspx in this case, must derive from
System.Web.Mvc.ViewPage
.That's it! Dropping the above content into an IIS vdir gives me a working ASPNET MVC site.
(Well, I also need the web.config file, which has 8k of configuration in it. All this source code and configuration is available to browse or download.)
And then I can add other static content: js, css, images and whatever else I like.