Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将值插入数据库_C#_.net_Dotnetnuke_Dnn Module - Fatal编程技术网

C# 将值插入数据库

C# 将值插入数据库,c#,.net,dotnetnuke,dnn-module,C#,.net,Dotnetnuke,Dnn Module,我是DNN和.NEt的新手,所以我可能在这里犯了很多错误。我的目标是拥有一个DNN模块,您可以上传带有标题和描述的图像-我通过正确修改模板模块、使用项目模型/控制器等实现了这一点。我尝试添加一个项目评级模型/控制器,但我无法找出我犯错误的确切位置 我的目标是为添加的每个项目添加一个“Upvote”按钮,该按钮只需将一个条目添加到我在数据库中创建的第二个表中,即可算作Upvote。但是使用当前的代码,我无法成功地插入db 我正在使用MVC模块模板和DNN8作为测试环境 以下是我的github上的项

我是DNN和.NEt的新手,所以我可能在这里犯了很多错误。我的目标是拥有一个DNN模块,您可以上传带有标题和描述的图像-我通过正确修改模板模块、使用项目模型/控制器等实现了这一点。我尝试添加一个项目评级模型/控制器,但我无法找出我犯错误的确切位置

我的目标是为添加的每个项目添加一个“Upvote”按钮,该按钮只需将一个条目添加到我在数据库中创建的第二个表中,即可算作Upvote。但是使用当前的代码,我无法成功地插入db

我正在使用MVC模块模板和DNN8作为测试环境

以下是我的github上的项目(我想这会容易得多):

整个前端可以在Index.cshtml中看到:

<div id="Items-@Dnn.ModuleContext.ModuleId">
    @if (Model.Count() == 0)
    {
        <p>No meme's submited *SadPanda*</p>
    }
    else
    {
        <ul class="tm_tl">
            @foreach (var item in Model)
            {
                <li class="tm_t">
                    <h3>@item.ItemName</h3>
                    <div class="upvote">



                        @Html.ActionLink(
                            "Upvote",                                                  // linkText
                            "UpvoteRating",                                    // actionName
                            "Item",                                                   // controllerName
                            new {                                                     // routeValues
                                item = item
                            },
                            null                                                      // htmlAttributes
                        )


                    </div>
                    <div class="tm_td">
                        <img src="~/desktopmodules/MVC/Memeometer/Memes/@item.ImagePath" style="float:left; width:220px; height:auto;" />

                    </div>
                    <div class="rating">
                        Rating:
                    </div>
                    @{
                        if (Dnn.ModuleContext.IsEditable)
                        {
                            <div>
                                <a href="@Url.Action("Edit", "Item", new {ctl = "Edit", itemId = item.ItemId})">@Dnn.LocalizeString("EditItem")</a>
                                <a href="@Url.Action("Delete", "Item", new {itemId = item.ItemId})">@Dnn.LocalizeString("DeleteItem")</a>
                            </div>
                        }
                    }
                </li>
            }
        </ul>
    }
</div>

@if(Model.Count()==0)
{
没有模因提交*熊猫*

} 其他的 {
    @foreach(模型中的var项目) {
  • @item.ItemName @Html.ActionLink( “向上投票”,//linkText “upvotating”,//actionName “项”,//控制器名称 新的{//routeValue 项目=项目 }, null//htmlAttributes ) 评级: @{ if(Dnn.ModuleContext.isEdit) { } }
  • }
}

我对这一点完全陌生,因此任何深入的解释都将不胜感激。

请查看我用于培训的DNN MVC模块教程示例。它有一个完全工作的CRUD(创建/读取/更新/删除)数据存储库和一个图像上载

您可以下载源程序包并安装要测试的模块


如有任何其他问题,请留下评论。

查看我用于培训的DNN MVC模块教程示例。它有一个完全工作的CRUD(创建/读取/更新/删除)数据存储库和一个图像上载

您可以下载源程序包并安装要测试的模块


请留下评论和其他问题。

对可能导致问题的代码进行一些观察:

出于某种原因,在您的
索引
razor视图中,您选择调用
Item.upvotating
,然后调用相应的控制器,而不是调用
ItemRating.Upvote
,我认为这更有意义(但这可能不是问题):

@Html.ActionLink(
“向上投票”,//linkText
“Upvote”//actionName
“ItemRating”//controllerName
新的{//routeValue
id=item.ItemId//这必须反映您的实际参数
},
null//htmlAttributes
)
另一件事(我怀疑这就是问题所在)是您的
ItemRating
模型上的属性(确切地说是缺少属性):

如果您签出数据库脚本(
DataProviders/../00.00.01.SqlDataProvider
),您将看到
ItemRatingId
作为
Memeometer\u Item\u Ratings
表的主键:

CREATE TABLE{databaseOwner}{objectQualifier}Memeometer\u Item\u Ratings
(
ItemRatingId int非空标识(1,1),
ItemIdFk int不为空,
PcIdentity nvarchar(最大值)不为空,
ItemRatingPoints int不为空
)在[小学]
text[主]上的图像\u
去
虽然在对象中有正确的装饰器,但类本身没有以下属性:

[表名(“Memeometer\u Item\u Ratings”)]
[PrimaryKey(“ItemRatingId”,AutoIncrement=true)]//装饰看起来不错
[可缓存(“ItemRatings”,CacheItemPriority.Default,20)]
[范围(“模块ID”)]
公共类项目评级
{
public int ItemId{get;set;}=-1;//您有,
public int ItemRatingId{get;set;}=-1;//而它可能需要如下
……您的其他财产。。。。
}

希望这能为您解决问题

您的代码中可能导致问题的几个观察结果:

出于某种原因,在您的
索引
razor视图中,您选择调用
Item.upvotating
,然后调用相应的控制器,而不是调用
ItemRating.Upvote
,我认为这更有意义(但这可能不是问题):

@Html.ActionLink(
“向上投票”,//linkText
“Upvote”//actionName
“ItemRating”//controllerName
新的{//routeValue
id=item.ItemId//这必须反映您的实际参数
},
null//htmlAttributes
)
另一件事(我怀疑这就是问题所在)是您的
ItemRating
模型上的属性(确切地说是缺少属性):

如果您签出数据库脚本(
DataProviders/../00.00.01.SqlDataProvider
),您将看到
ItemRatingId
作为
Memeometer\u Item\u Ratings
表的主键:

CREATE TABLE{databaseOwner}{objectQualifier}Memeometer\u Item\u Ratings
(
ItemRatingId int非空标识(1,1),
ItemIdFk int不为空,
PcIdentity nvarchar(最大值)不为空,
伊梅拉