gpt4 book ai didi

c# - mvc4 actionlink传递变量

转载 作者:行者123 更新时间:2023-11-30 22:16:24 25 4
gpt4 key购买 nike

所以我得到了我正在处理的这个网络项目,并且在 4/5 的 View 中我正在使用

 @Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})

除了我的“创建新 View ”之外,所有 View 都会让我回到我的列表这也将是唯一不加载的 View ,给我“System.NullReferenceException”的异常(exception)

我很困惑为什么这是唯一不允许我将 clientID 传递给它的 View (因为我不仅需要它,还需要 CountyID 来创建一个新的县,更重要的是告诉我它是空。

如果我删除上面的代码行,我的代码运行良好(显然除了将我的 2 个 ID 字段添加到创建 View 中)这让我认为它可能是我的 Controller 。

这是我从 givin Controller 创建的 Action

    // GET: /County/Create
public ActionResult Create()
{
return View();
}

为了比较这里是同一 Controller 中的编辑操作

    public ActionResult Edit(int id = 0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}

我也尝试过将此代码添加到创建新的操作链接中,当我收到此错误时

HTTP Error 404.0 - Not Found
The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.
Most likely causes:

The directory or file specified does not exist on the Web server.
The URL contains a typographical error.
A custom filter or module, such as URLScan, restricts access to the file.

我在这里做错了什么......

我的项目建立在一个层次模型之上,一个客户多个县(如果您需要更多代码,请告诉我)

提前致谢。

提示:

一定有一个原因(我的假设)为什么在删除这行代码时它起作用(所以它一定是这行代码??) - 必须是一种不同的传递方式(clientID 的值为 1 )

 @Html.ActionLink("Back to List", "Index", new { id=Model.ClientID})

需要编辑索引 Controller :

    public ActionResult Index([Bind(Prefix="id")] int CID=0)
{
var clnt = db.Clients.Find(CID);

if (clnt != null)
{
return View(clnt);
}

return HttpNotFound();

}

编辑:县 Controller 的新创建操作

    public ActionResult Create(int id=0)
{
dbCounty countys = db.Countys.Find(id);
if (countys == null)
{
return HttpNotFound();
}
return View(countys);
}

我也试过运行

    public ActionResult Create(int id=0)
{
dbClient Client = db.Clients.Find(id);
if (Client == null)
{
return HttpNotFound();
}
return View(Client);
}

(因为我正在传递一个 clientID - 模型构建的方式应该在使用 clientID(passedVariable)在数据库中创建这个新行时添加一个县 ID

最佳答案

您似乎没有将模型传递给创建 View 。在您的 Create Controller 中,您需要如下内容,其中 Client 是具有属性 ClientID 的对象。

public ActionResult Create()
{
...
return View(Client);
}

编辑:

澄清一下,在您的创建 View 中,模型为空,因为您没有在 Controller 中传递它。看看工作的 Controller ,看看它传递给 View 的是什么。您需要为 Create 执行类似的操作。

关于c# - mvc4 actionlink传递变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17427012/

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