在.cshtml页面中发送和接收数据

Bil*_*llz 3 c# asp.net asp.net-mvc razor asp.net-mvc-3

我正在做我的作业,我正在asp.net MVC 3中开发一个购物网站,目前我只在视图中做我的工作.我有一个产品页面,点击详细信息我必须打开产品详细信息页面.

<a href="ProductDetails.cshtml"> Details </a>
Run Code Online (Sandbox Code Playgroud)

我有多个产品,我想告诉我的产品详细信息页面打开了哪些产品详细信息.一种方法是我可以使用URL附加Id

<a href="ProductDetails.cshtml?id=1"> Details </a>
Run Code Online (Sandbox Code Playgroud)

但我无法理解如何在产品详细信息页面上收到此ID,因为我没有控制器,也没有模型,我使用服务器端代码在.cshtm页面上使用压缩数据库获取数据.

McG*_*gle 10

您可以使用访问查询字符串Request.QueryString["key"].所以我想你会想要使用这样的东西:

@{
    var myProductId = Request.QueryString["id"];
}
Run Code Online (Sandbox Code Playgroud)

警告:当然这是一个不好的做法,通常MVC模式要求您在Controller的操作中提取ID,获取模型数据,并将该模型数据返回到View.View应该尽可能少地了解查询字符串和任何程序逻辑之类的内容.

public class ProductController : Controller
{
    public ActionResult ProductDetails(string id)
    {
        MyProduct model = SomeDataSource.LoadByID(id);
        return View(model);
    }
}
Run Code Online (Sandbox Code Playgroud)