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