0

我正在开发一个 mvc .net Web 应用程序。我有一个包含困难的数据库(称为困难的表),每个困难都有评论。在我看来,我想用相应的评论和一个新评论的文本区域和一个提交它的按钮来展示每一个困难。我创建了一个模型类,其中包含难度和评论、新评论内容的字符串 var 和想要评论的人的姓名的字符串 var。我的问题是我未能提交新评论。

这是我的模型课

public class difficultecommentaires
{
    public difficulte diff { get; set; }
    public IList<commentaire> comms { get; set; }
    public string pseudo { get; set; }
    public string nouveau { get; set; }
}

这是我提交新评论的操作方法

        [HttpPost]
    public ActionResult NewComment(int id_diff, string pseudo, string contenu)
    {
        difficulte d = new difficulte();
        using (BDGestionEntities bd = new BDGestionEntities())
        {
            var query = from j in bd.difficultes where (j.id_diff == id_diff) select j;
            foreach (var k in query)
                d = k;
        }
        commentaire com = new commentaire();
        com.pseudo = pseudo;
        com.difficulte= d;
        com.contenu = contenu;
        db.AddTocommentaires(com);
        db.SaveChanges();
        ObtenirDifficulte(id_diff);
        return View();
    }

这是我的看法

 @model GestionProjet.Models.difficultecommentaires

@{
    ViewBag.Title = "ObtenirDifficulte";
}

<h2>Détails</h2>

<fieldset>
<table>
<tr><td>
    <label><b>Titre de la difficulté :</b></label></td><td>@Html.DisplayFor(m=>m.diff.titre)</td></tr>

    <tr><td>
    <label><b>Description :</b></label></td><td>@Html.DisplayFor(m=>m.diff.description)</td></tr>
    </table>
    <table>
    @foreach (var k in Model.comms)
    {

        <tr><td>@k.pseudo a dit :</td><td>
        @k.contenu</td></tr>

    }
    </table>
    <br />
    <table>
    <tr><label><b>Nouveau commentaire</b></label></tr>
    <tr>
    <td><b>Nom :</b></td><td>@Html.TextBoxFor(m=>m.pseudo)</td>
    </tr>
    <tr>
    <td><b>Commentaire :</b></td><td>@Html.TextAreaFor(m=>m.nouveau)</td>
    </tr>
    </table>
    @Html.ActionLink("Ajouter", "NewComment", new { Model.diff.id_diff, Model.pseudo , Model.nouveau}) 

</fieldset>
<p>
<a href="@Url.Action("Index")"><img src="~/Images/retour.png" alt =""/></a>
</p>

这是我的模型设计(困难部分)

在此处输入图像描述

我认为问题出在我的操作链接的参数中。我是空值错误。我该如何解决这个问题。

4

1 回答 1

1

从外观上看,您正在使用将执行 GET 的 ActionLink(传递您作为路由参数提供的参数,但不传递表单元素值,即新评论。)可以尝试如下所示:

@Html.BeginForm("Ajouter", "NewComment", FormMethod.Post, new { id_diff = Model.diff.id_diff })
    {        
        <table>
            <tr><label><b>Nouveau commentaire</b></label></tr>
            <tr>
            <td><b>Nom :</b></td><td>@Html.TextBoxFor(m=>m.pseudo)</td>
            </tr>
            <tr>
            <td><b>Commentaire :</b></td><td>@Html.TextAreaFor(m=>m.nouveau)</td>
            </tr>
        </table>

        <input type="submit" value="Submit" />
    }

并让您的行动接受:

[HttpPost]
public ActionResult NewComment(int id_diff, string pseudo, string contenu)
{
于 2012-08-03T14:34:34.330 回答