Fixing an issue with output parameters that are of type IntPtr
[castle.git] / Samples / MonoRail / SampleSite / Views / DatabindArea / home / index.vm
blob4f5790261ba03b5833b05b7698d3eb37d56e22de
1 <div align="center">\r
2   <h2>Databind</h2>\r
3 </div>\r
4 \r
5 <div class="container">\r
6 \r
7 <p>\r
8   Within a <code>SmartDispatcherController</code> you can now associate classes to be \r
9   populated with data from your form. Just use the \r
10   DataBindAttribute on one or more arguments on your action.\r
11 </p>\r
13 <p>Suppose you have the following form contents on your page:</p>\r
15 <pre><code>\r
16 Name: &lt;input type="text" name="name"&gt;\r
17 Address: &lt;input type="text" name="address"&gt;\r
18 E-mail: &lt;input type="text" name="email"&gt;\r
19 Age: \r
20 &lt;select name="age"&gt;\r
21   &lt;option&gt;18&lt;/option&gt;\r
22   &lt;option&gt;19&lt;/option&gt;\r
23   &lt;option&gt;20&lt;/option&gt;\r
24   &lt;option&gt;21&lt;/option&gt;\r
25 &lt;/select&gt;\r
26 </code></pre>\r
28 <p>And your Account class looks like the following code:</p>\r
30 <pre><code>\r
31 namespace Yournamespace\r
32 {\r
33   public class Account\r
34   {\r
35     private String name;\r
36     private String address;\r
37     private String email;\r
38     private int age;\r
39     \r
40     public String Name\r
41     {\r
42       get { return name; }\r
43       set { name = value; }\r
44     }\r
45     \r
46     public String Address\r
47     {\r
48       get { return address; }\r
49       set { address = value; }\r
50     }\r
51     \r
52     public String Email\r
53     {\r
54       get { return email; }\r
55       set { email = value; }\r
56     }\r
57     \r
58     public int Age\r
59     {\r
60       get { return age; }\r
61       set { age = value; }\r
62     }\r
63   }\r
64 }\r
65 </code></pre>\r
67 <p>The DataBind will automatically fills the account instance for you</p>\r
69 <pre><code>\r
70 namespace Yournamespace\r
71 {\r
72   public class AccountController : SmartDispatcherController\r
73   {\r
74     public void Update([DataBind] Account account)\r
75     {\r
76     }\r
77   }\r
78 }\r
79 </code></pre>\r
81 <p>\r
82   You may want to use prefixes to avoid collisions as well:\r
83 </p>\r
85 <pre><code>\r
86 namespace Yournamespace\r
87 {\r
88   public class AccountController : SmartDispatcherController\r
89   {\r
90     public void Update([DataBind(Prefix="account")] Account account)\r
91     {\r
92     }\r
93   }\r
94 }\r
95 </code></pre>\r
97 <p>\r
98   In this case, the form would look like:\r
99 </p>\r
101 <pre><code>\r
102 Name: &lt;input type="text" name="account.name"&gt;\r
103 Address: &lt;input type="text" name="account.address"&gt;\r
104 E-mail: &lt;input type="text" name="account.email"&gt;\r
105 Age: \r
106 &lt;select name="account.age"&gt;\r
107   &lt;option&gt;18&lt;/option&gt;\r
108   &lt;option&gt;19&lt;/option&gt;\r
109   &lt;option&gt;20&lt;/option&gt;\r
110   &lt;option&gt;21&lt;/option&gt;\r
111 &lt;/select&gt;\r
112 </code></pre>\r