How to call a method from the View? MVC
===

I'm a beginner at MVC 3 C#.

I have a View with a `<input type="submit" value="Create" />` when a User click create the Action Method should be activated and the Result written in the db.

At the moment when a User click Create Button in the View nothing happen. Could you tell me what I'm doing wrong? thanks

   

    using System;
    
    using System.Collections.Generic;
    using System.Linq;
    using System.Web;
    using System.Web.Mvc;
    using TestGuestBook.Models;
    using TestGuestBook.Models.Repositories;
    using TestGuestBook.ViewModels;
    
    namespace TestGuestBook.Controllers
    {
        [HandleError]
        public class HomeController : Controller
        {
    
            ICommentRepository _repository;
    
            public HomeController()
            {
                _repository = new CommentRepository();
            }
    
            // Dependency Injection enabled constructors
            public HomeController(ICommentRepository repository)
            {
                _repository = repository;
            }
    
            public ActionResult Index()
            {
                // Get all Comments
                List<Comment> commentItems = _repository.FindAll().ToList();
                // Create the ViewModel and associate the list of comments
                CommentListCreateViewModel viewModel = new CommentListCreateViewModel();
                viewModel.CommentItems = commentItems;
    
                return View(viewModel);
            }
    
            public ActionResult Create()
            {
                CommentListCreateViewModel createViewModel = new CommentListCreateViewModel();
                return View(createViewModel);
            }
    
            [HttpPost]
            public ActionResult Create(CommentListCreateViewModel createViewModel)
            {
                if (ModelState.IsValid)
                {
                    Comment comment = new Comment
                    {
                        Nominative = createViewModel.Nominative,
                        Email = createViewModel.Email,
                        Content = createViewModel.Content
                    };
                    _repository.Add(comment);
                    _repository.Save();
                }
                return View();
            }
    
        }
    }

-----------------------

View

    @model TestGuestBook.ViewModels.CommentListCreateViewModel
    @{
        ViewBag.Title = "Index";
    }
    <h2>
        Index</h2>
    @using (Html.BeginForm())
    {
        @Html.ValidationSummary(true)
        <fieldset>
            <legend>ListAddCommentsViewModel</legend>
            <div class="editor-label">
                @Html.LabelFor(model => model.Nominative)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Nominative)
                @Html.ValidationMessageFor(model => model.Nominative)
            </div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Email)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Email)
                @Html.ValidationMessageFor(model => model.Email)
            </div>
            <div class="editor-label">
                @Html.LabelFor(model => model.Content)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Content)
                @Html.ValidationMessageFor(model => model.Content)
            </div>
            <p>
                <input type="submit" value="Create" />
            </p>
        </fieldset>
    }
    
    <table>
        <tr>
            <th>
                Nominative
            </th>
            <th>
                Email
            </th>
            <th>
                Content
            </th>
            <th>
            </th>
        </tr>
        @foreach (var item in Model.CommentItems)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Nominative)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Email)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Content)
                </td>
                <td>
                </td>
            </tr>
    
        }
    </table>

