You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ASP.NET MVC点击Forum视图按钮将ProjeAdi存入登录Ogrenci的BekleyenProje实现方法

实现步骤

1. 为ForumController新增项目申请处理方法

在ForumController类中添加如下Action方法,用于处理按钮点击后的业务逻辑:

[HttpPost]
public ActionResult ProjeBasvuruYap(int projeId)
{
    // 校验用户登录状态
    if (Session["OgrenciID"] == null)
    {
        return RedirectToAction("Login", "Security");
    }

    int girisYapanOgrenciId = (int)Session["OgrenciID"];
    // 查询当前登录学生信息
    var ogrenci = db.Ogrenciler.Find(girisYapanOgrenciId);
    // 查询被申请的项目信息
    var proje = db.Projeler.Find(projeId);

    if (ogrenci != null && proje != null)
    {
        // 可选校验:避免同一项目重复申请
        if (ogrenci.BekleyenProje == proje.ProjeAdi)
        {
            TempData["Mesaj"] = "Bu projeye zaten başvuru yaptınız!";
            return RedirectToAction("Index");
        }

        // 写入待审核项目字段
        ogrenci.BekleyenProje = proje.ProjeAdi;
        db.SaveChanges();
        TempData["Mesaj"] = "Proje başvurunuz alınmıştır, onay bekliyor.";
    }
    else
    {
        TempData["Mesaj"] = "Geçersiz işlem!";
    }

    return RedirectToAction("Index");
}

2. 修改Forum Index视图代码

首先在视图顶部添加操作提示的展示区域:

@if (TempData["Mesaj"] != null)
{
    <div class="alert alert-info">@TempData["Mesaj"]</div>
}

再把你标注的目标空按钮替换为如下代码,适配登录/未登录状态的交互:

@if (Session["OgrenciID"] != null)
{
    using (Html.BeginForm("ProjeBasvuruYap", "Forum", new { projeId = item.ProjeID }, FormMethod.Post))
    {
        <button type="submit" class="login-button">Projeye Başvur</button>
    }
}
else
{
    <button type="button" class="login-button" onclick="location.href='@Url.Action("Login", "Security")'">Giriş Yapıp Başvur</button>
}

可选优化说明

如果后续需要支持一个学生同时申请多个项目,当前Ogrenci模型里的BekleyenProje单字符串字段会出现数据覆盖问题,建议新增学生-待审核项目的中间关联表存储对应关系,适配多申请场景。

内容的提问来源于stack exchange,提问作者caner0zkan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.17 08:06:06