Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC将数据从视图传递到控制器时出错:或者找不到其主节点,或者视图引擎不支持_C#_Asp.net Mvc - Fatal编程技术网

C# MVC将数据从视图传递到控制器时出错:或者找不到其主节点,或者视图引擎不支持

C# MVC将数据从视图传递到控制器时出错:或者找不到其主节点,或者视图引擎不支持,c#,asp.net-mvc,C#,Asp.net Mvc,我需要帮助 我正在尝试将数据推送到controller->MembersController 我的代码: 查看 @using (Html.BeginForm("updateMember","Members", FormMethod.Post)) { . . . <input type="submit" class="btn btn-default" value="submit" /> } 错误 找不到视图“updateMember”或其主视图,或者没有视图引擎支持搜索的

我需要帮助

我正在尝试将数据推送到controller->MembersController

我的代码:

查看

@using (Html.BeginForm("updateMember","Members", FormMethod.Post))
{
 .
 .
 .
   <input type="submit" class="btn btn-default" value="submit" />
}
错误 找不到视图“updateMember”或其主视图,或者没有视图引擎支持搜索的位置

视图的名称应与方法相同,或者可以在方法参数中传递名称。e、 g返回视图(“updateMember”)如果需要将某个对象传递给视图,则应使用方法视图的参数(“updateMember”,someObject)传递该对象。您可以看到的其他重载

末尾的
return…
是键。你应该把你出错时的实际情况写下来,如果你有一个关于应该是什么的问题,直接问它或者添加一些类似的内容:

return View(); // is this right?  what should this be?
我们需要查看您的代码的实际内容,以便了解它出错的原因。还缺少完整的更新代码,因为不清楚
bamc
是另一个
Members
viewmodel/model还是数据库上下文模型。我假设您的
return
语句与我前面所说的一样,并且
bamc
是从数据库中检索到的
成员
对象

当您执行
返回视图()
时,MVC假定您要显示的视图的名称与您正在调用的方法的名称相同,因此它会在
/Views/{your controller name}
下的文件夹中查找具有各种扩展名(即.cshtml、.ascx等)的名称

实际上,不需要在该文件夹中有一个包含函数名称的视图,但是,如果您改为重定向到/显式指定一个确实驻留在其中的现有视图,并接受要传递给它的模型/视图模型(假设您调用的视图接受模型)

如果要更新成员的信息,可能需要重定向到更新后在显示页面上列出该信息的页面,以便用户可以看到信息已更新。因此,您可能会重定向到“MemberDetails.cshtml”视图,并使用如下例程:

[Authorize]
[HttpPost]
public ActionResult updateMember(Member m)
{
    Model1 db = new Model1();
    Member bamc = db.Members.FirstOrDefault(t => t.MemberId == m.MemberId);

    // Update member        
    bamc.Name = m.Name;
    bamc.Address = m.Address;
    // … etc. ...

    db.Entry(bamc).State = EntityState.Modified;
    db.SaveChanges();

    return View("MemberDetails", m);
}
其中“MemberDetails”是一个视图,位于路径
/Views/Members
下的文件夹中,并接受
成员
模型(页面顶部有
@model YourSite.Models.Member

如果您不想传递模型,只想重定向到一个成员列表,可能是同一路径中名为“MembersList”的视图,它可能是:

return View("MembersList");

这完全取决于您想做什么(问题中也没有提供)。

您是否在特定的视图文件夹(视图/成员)中有updateMember.cshtml命名视图?没有?视图的名称是RequestMembers.csHtml您从您的操作中返回(或打算返回)的确切内容是什么?返回时出现了错误。谢谢你的提示-不一定。。具有接受视图名称和要传递给它的对象的重载。。你的解释使它看起来似乎是唯一的方法。它有7个重载。我应该全部解释吗?我已经解释了他如何改正他的错误。你可以在intellisense视觉研究中看到其他重载为什么你必须解释所有这些重载?他们已经在我提供的链接页面上解释过了。也许你应该更新你的答案,包括那个链接和一些可能的书面例子,这对OP最有帮助。从阅读开始。编码快乐。@GTown编码员,我已经编辑了答案。谢谢你,我也很高兴
return View("MembersList");