Well, I must say I agree with Nick that it is good to know the "magic" behind ASP.NET MVC. The "magic" is, there is none! Anyway, the HTML in the book exactly matches what would be produced by the Html.BeginForm(...) method.
Now, if you know the HTML produced by a method, and it's acceptable for your site design, I say go ahead and use it. Personally, I prefer the Html.BeginForm method, but that's only because I know what it does.
And by the way, you can wrap the call to that method in a using(...) { ... } block and then you never have to call Html.EndForm(...).
Example:
Code:
<% using (Html.BeginForm("MyAction", "MyController", FormMethod.Post, new { @class = "my-css-class" }))
{
%>
<!-- Your HTML and in-line ASP.NET code here. -->
<% } %>
Coming to the end of the 'using' block will automatically call Html.EndForm() so you don't have to.
As Nick said, the above will simply get translated into the following HTML:
Code:
<form action="/MyController/MyAction" method="Post" class="my-css-class">
<!-- Your HTML and in-line ASP.NET code here. -->
</form>