-
-
Notifications
You must be signed in to change notification settings - Fork 10
Controllers responses
All default controllers responses can be found in Simplify.Web.Responses
namespace.
Loads specified template and puts it to the data collector (template data will be added to the MainContent
variable of the DataCollector
).
- StaticTpl(string templateFileName) - just loads and puts template data to the
DataCollector
.
public override ControllerResponse Invoke()
{
return StaticTpl("Default");
}
- StaticTpl(string templateFileName, string title) - the same as above, but also adds a site title into the
Title
variable ofDataCollector
.
public override ControllerResponse Invoke()
{
return StaticTpl("MyPageTemplate", StringTable.MyPageTitle);
}
Puts a string into the MainContent
variable of the DataCollector
.
public override ControllerResponse Invoke()
{
return Tpl("Some text");
}
public override ControllerResponse Invoke()
{
return Tpl("Some text", StringTable.MyPageTitle);
}
public override ControllerResponse Invoke()
{
return Tpl(TemplateFactory.Load("MyPageTemplate").Get(), StringTable.MyPageTitle);
}
The same as Tpl
, but at first parameter you can specify exact DataCollector
variable name.
public override ControllerResponse Invoke()
{
return InlineTpl("LoginControl", TemplateFactory.Load("LoginControlTemplate").Get());
}
Redirects the client to an URL or by specifying a redirection type.
public override ControllerResponse Invoke()
{
return Redirect("http://somelink.com");
}
public override ControllerResponse Invoke()
{
return Redirect(RedirectionType.PreviousPage);
}
Sends a string to the client and HTML page will not be generated.
public override ControllerResponse Invoke()
{
return Content("Some string");
}
Same as Content
response, just semantically different. You can clearly specify the HTTP response status code with optional response.
public override ControllerResponse Invoke()
{
return StatusCode(204);
}
Same as StatusCode
with HTTP status code equals to 204.
public override ControllerResponse Invoke()
{
return NoContent();
}
Sends a JSON to the client and HTML page will not be generated.
public override ControllerResponse Invoke()
{
return Json();
}
Sends a file to the client
public override ControllerResponse Invoke()
{
return new File("MyFile.txt", "text/plain", Encoding.UTF8.GetBytes("My file content"));
}
Serializes a view model and puts it into a template, then that template will be put into the MainContent
variable of the DataCollector
.
public class LoginViewModel
{
[Required]
public string UserName { get; set; }
[Required]
public string Password { get; set; }
public bool RememberMe { get; set; }
}
public override ControllerResponse Invoke()
{
var model = new LoginViewModel {UserName = "Foo"};
return new ViewModel<LoginViewModel>("LoginPage", model);
}
There are two types of JSON Responses: built-in using System.Text.Json
and external, using Newtonsoft.Json
, there external version live in it's own repository
For each response there is a method in controllers base class with the same name as the name of the controller response class, so you don't need to specify new
keyword for built-in controller responses.
public override ControllerResponse Invoke()
{
return StatusCode(204);
}
- Getting Started
- Main Simplify.Web principles
- Simplify.Web controllers
- Simplify.Web views
- Simplify.Web templates
- Simplify.Web configuration
- Templates variables
- Static content
- Template factory
- Data collector
- String table
- File reader
- Web context
- Environment
- Dynamic environment
- Language manager
- Redirector
- HTML