0

ビュー モデルのリストに新しい項目を追加するビューを作成するにはどうすればよいですか?

そのため、オブジェクトのリストを含むビューモデルがあります(ビューモデルには他のオブジェクトも1つあります)。基本的に、リストはコメントになります (そのため、0 から x 個のコメントがある場合があります)。

私は VS 2010 を使用しています (そして、それはカミソリ ビュー エンジンではないと思いますか?)

これが私の見解です。リストに新しい項目を追加するオプションが必要です

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<JPROCommunitydataListings.ViewModels.dataWithCommentsViewModel>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
    data Solution
</asp:Content>

<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
    <p>data Description#    <%: Model.data.Description %></p>
    <p>data ParameterID#    <%: Model.data.ParameterID %></p>
    <%--<h2>dataWithComments</h2>--%>

        <table class="table table-striped table-hover">
        <tr>
            <th>
                Comment
            </th>
            </tr>
        <% foreach (var Comment in Model.Comments) { %>
             <td>
                <%: Comment.comment1%>
            </td>
        <% } %>
        </table>
            <% using (Html.BeginForm()) {%>
        <%: Html.ValidationSummary(true) %>

    <fieldset>
        <legend>Add Comment</legend>        

        <div class="editor-label">
        <"label">
        What to do here????????
                <%--<%: Html.LabelFor(model => model.Comments[0].comment1) %>--%>
            </div>
            <div class="editor-field">
                <%: Html.TextBoxFor(model => model.Comments.comment1)%>
                <%: Html.ValidationMessageFor(model => model.Comments[0].comment1)%>
            </div>
        What to do here????????                        
            <p>
                <input type="submit" value="Search" />
            </p>
        </fieldset>

    <% } %>
    </fieldset>
    <p>
        <%: Html.ActionLink("Search", "Search") %>
    </p>

</asp:Content>
4

1 に答える 1

0

「ここで何をするか」

フォームが必要です:

<form action="/ControlerName/AddComment" method="POST">
   ...
   <%: Html.TextBox("CommentToAdd")%>
   <%: Html.Hidden("PostIdToAddComment")%>
   <input type="submit" value="Search" />
</form>

コントローラーでは、コメントを DB に保存してから、ページを表示する元のアクションにリダイレクトするため、すべてのコメントについてデータベースにクエリを実行していると仮定して、コメントが表示されるはずです。

[HttpPost]
public ActionResult AddComment(string commentToAdd, int postIdToAddComment)
{
   //do your database stuff here to add comment
   return RedirectToAction("DataWithCommentsOrWhateverTheNameOfTheActionIsForTheOriginalPage")
}
于 2013-04-11T19:00:01.987 に答える