for things like settings where the main use for viewing the page is to edit it, inline makes sense.
After that, it's more about the usage. If people are constantly editing them then it should just be inline. If it's for say user details, where it is mostly read and sometimes changed, this is what I do:
The page is viewed without editable boxes.
If the user wishes to change some information, they hit an edit button
The same page is shown but with editable fields and cancel / submit buttons.
I achieve this by having the view decide based on a value in the property bucket which version of each field to show, which is set by the action (MVC)
EDIT:
Sample as requested (untested)
In the controller (castle monorail), let's say CustomerController:
public void View(int customerid)
{
PropertyBag["customer"] = Customer.Find(customerid);
}
public void Edit(int customerid)
{
PropertyBag["editing"] = true;
View(customerid);
RenderView("View");
}
in the View (brail):
<th>Name:</th>
<td>
<% if IsDefined("editing"): %>
<input name="c.Name" value="$customer.Name" />
<% else: %>
$customer.Name
<% end %>
</td>