gpt4 book ai didi

c# - 如何在 ASP.NET MVC 中应用评级

转载 作者:太空宇宙 更新时间:2023-11-03 16:34:58 27 4
gpt4 key购买 nike

我正在尝试在 MVC 中实现星级评分,但发现它非常困难,因为互联网上的大多数评分都使用 jquery,其中当前评分值的查询字符串在 jquery 代码中。我希望能够对我网站上的每部电影进行评分,但无法将我的 movieID 传递给 MovieRating 操作。这是因为正在传递的查询字符串已被评级采用。我也尝试使用 FormCollection 来收集我的 movieID 但收到的是空值。我还想在每个用户登录网站时显示他们的评分。请提供任何帮助,我们将不胜感激。

public ActionResult MovieRating(int id, int rating, MovieRating MovieRating)
{
MovieRating.Rating= rating;
MovieRating.ProfileID = "duru";

MovieRating.MovieID =id;
//save change not yet implemented
}

这是我认为的代码:这个 Url.RequestContext.RouteData.Values["id"] 帮助我获取当前 movieID 的查询字符串

@using (Html.BeginForm("MovieRating", "Movie", FormMethod.Post, new { id =          Url.RequestContext.RouteData.Values["id"] }))
{
<p>
<img src="../../Content/RatingImages/EmptyStar.png" class="MovieRating" alt="Star Rating" align="middle" id="1" />
<img src="../../Content/RatingImages/EmptyStar.png" class="MovieRating" alt="Star Rating" align="middle" id="2" />
<img src="../../Content/RatingImages/EmptyStar.png" class="MovieRating" alt="Star Rating" align="middle" id="3" />
<img src="../../Content/RatingImages/EmptyStar.png" class="MovieRating" alt="Star Rating" align="middle" id="4" />
<img src="../../Content/RatingImages/EmptyStar.png" class="MovieRating" alt="Star Rating" align="middle" id="5" />
</p>
<div id="result"></div>
}

这是 jquery 代码

/// <reference path="jquery-1.5.1-vsdoc.js" />
/// <reference path="jquery-ui-1.8.11.js" />
/*(document).(function(){*/
$(function () {
$('.MovieRating').mouseover(function () {
giveRating($(this), "FilledStar.png");
$(this).css("cursor", "pointer");
});

$('.MovieRating').mouseout(function () {
giveRating($(this), "EmptyStar.png");
});

$('.MovieRating').click(function () {
$('.MovieRating').unbind("mouseout mouseover click");

// call ajax methods to update database
var url = "/Movie/MovieRating?rating=" + parseInt($(this).attr("id"));
$.post(url, null, function (data) {
$("#result").text(data);
});
});
});

function giveRating(img, image) {
img.attr("src", "/Content/RatingImages/" + image)
.prevAll('.MovieRating').attr("src", "/Content/RatingImages/" + image);
}

最佳答案

我假设当您构建将评级发布到您的操作的 jQuery 调用时,您能够指定应将评级发布到的 url。如果没有办法扩展 jquery 插件以允许其他参数,我会发布到路由 'Controller/MovieRating/@Model.MovieId' 然后允许 jQuery 插件发布任何查询字符串参数它需要。一旦您在 Controller 中收到此信息,id 将被填充,您可以继续为电影分配您的评级

注意:所提供的路由假设您使用的是 Razor 语法,并且由于您没有发布太多关于您的 View 或 Controller 的代码,您的 View 模型的电影 ID 为 MovieId,您显然必须更改它以适应您的需求

编辑看到你的代码后,如果你改变这一行

var url = "/Movie/MovieRating?rating="+ parseInt($(this).attr("id"));

为此:

var url = "/Movie/MovieRating/@Url.RequestContext.RouteData.Values["id"]?rating="+
parseInt($(this).attr("id"));

它应该能让您朝着正确的方向前进。这将允许您的 MovieRating 操作接受它期望的 id 参数。

但是,我要问您的另一个问题是,您是否将 View 模型传递到您的页面?你为什么不在你的 View 模型上传递电影的 Id 而不是每次都从 RouteData 中获取它?只是好奇

关于c# - 如何在 ASP.NET MVC 中应用评级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9395398/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com