Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.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# 将id参数传递给控制器';s使用viewbag在内部创建操作_C#_Asp.net Mvc - Fatal编程技术网

C# 将id参数传递给控制器';s使用viewbag在内部创建操作

C# 将id参数传递给控制器';s使用viewbag在内部创建操作,c#,asp.net-mvc,C#,Asp.net Mvc,在我的模型中,用户和类主题之间有一对多的关系。这两个类的代码是 public class Topic { public int TopicID { get; set; } public int UserID { get; set; } public virtual User User { get; set; } [Display(Name="Topic Subject")] public string TopicSubject { get; set; }

在我的模型中,用户和类主题之间有一对多的关系。这两个类的代码是

public class Topic
{
    public int TopicID { get; set; }
    public int UserID { get; set; }
    public virtual User User { get; set; } 
    [Display(Name="Topic Subject")]
    public string TopicSubject { get; set; }
    [Display(Name="Date")]
    [DataType(DataType.Date)]
    public DateTime TopicDate { get; set; }
    [DisplayName("Name")]
    public int CatagoryID { get; set; }
    [DisplayName("FullName")]

    public virtual Catagory Catagories { get; set; }

    public virtual ICollection<Reply> Replies { get; set; }
}
但是,当我尝试在浏览器中访问主题/创建时,会出现类似这样的错误,这会困扰我:


您的创建方法是HttpGet版本-这意味着,为什么要传递尚未创建的对象的id以“创建”对象?对于create来说,这个应该是空的,HttpPost应该传回模型,这样才能创建它


尝试查看创建mvc示例:

要使控制器正常工作,您需要在查询参数中传递id。所以你需要使用下面的url

如果希望id是可选的,则需要更改操作方法,如下所示

public ActionResult Create(int? id)
{
    ViewBag.CatagoryID = id;
    ViewBag.UserID = id;
    return View();
}
上面会告诉我们C#id参数是可选的,MVC不希望它出现在查询参数中


希望这有帮助

试试本地主机:63952/Create/5 5指在函数Create中传递的id
您可以尝试任何数字,因为错误表明您没有将id从链接传递到该页面,因此它将起作用

。如果你不知道如何做到这一点,我建议你学习“mvc入门”教程。
public ActionResult Create(int id)
{
    ViewBag.CatagoryID = id;
    ViewBag.UserID = id;
    return View();
}
public ActionResult Create(int? id)
{
    ViewBag.CatagoryID = id;
    ViewBag.UserID = id;
    return View();
}