C# 解析路由参数
你好,我正在尝试在我的网站上为一些物理文章建立一个评论区,现在我希望当我点击C# 解析路由参数,c#,asp.net-core,C#,Asp.net Core,你好,我正在尝试在我的网站上为一些物理文章建立一个评论区,现在我希望当我点击 <a asp-route-articleid="smth" asp-action="Create">Create New</a> 将返回包含“articleid=smth”值的完整url字符串 如果我理解我的问题,那么你有以下问题 您在一个页面上有“创建”按钮,可以生成您描述的链接 现在,当您单击该链接时,您的create方法将被调用,它将返回您指定的视图。(此时,如果在方法中查找articl
<a asp-route-articleid="smth" asp-action="Create">Create New</a>
将返回包含“articleid=smth”值的完整url字符串 如果我理解我的问题,那么你有以下问题
[HttpGet]
public async Task<IActionResult> Create(string articleId)
{
Physics t = new Physics();
if(!string.IsNullOrEmpty(articleId))
{
t.ArticleID = articleId;
}
return View(t);
}
[HttpPost]
public async Task<IActionResult> Create([Bind("ID,CommentContext,UserName,ArticleID")]Physics physics)
{
if (ModelState.IsValid)
{
physics.UserName = HttpContext.User.Identity.Name;
//_context.Add(physics);
//await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(physics);
}
[HttpGet]
公共异步任务创建(字符串articleId)
{
物理学t=新物理学();
如果(!string.IsNullOrEmpty(articleId))
{
t、 ArticleID=ArticleID;
}
返回视图(t);
}
[HttpPost]
公共异步任务创建([Bind(“ID,CommentContext,UserName,ArticleID”)]物理)
{
if(ModelState.IsValid)
{
physics.UserName=HttpContext.User.Identity.Name;
//_增加(物理学);
//wait_context.SaveChangesAsync();
返回操作(“索引”);
}
返回视图(物理);
}
创建
物理
我希望这个解决方案能对您有所帮助。如果我理解我的问题,那么您有以下问题
[HttpGet]
public async Task<IActionResult> Create(string articleId)
{
Physics t = new Physics();
if(!string.IsNullOrEmpty(articleId))
{
t.ArticleID = articleId;
}
return View(t);
}
[HttpPost]
public async Task<IActionResult> Create([Bind("ID,CommentContext,UserName,ArticleID")]Physics physics)
{
if (ModelState.IsValid)
{
physics.UserName = HttpContext.User.Identity.Name;
//_context.Add(physics);
//await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(physics);
}
[HttpGet]
公共异步任务创建(字符串articleId)
{
物理学t=新物理学();
如果(!string.IsNullOrEmpty(articleId))
{
t、 ArticleID=ArticleID;
}
返回视图(t);
}
[HttpPost]
公共异步任务创建([Bind(“ID,CommentContext,UserName,ArticleID”)]物理)
{
if(ModelState.IsValid)
{
physics.UserName=HttpContext.User.Identity.Name;
//_增加(物理学);
//wait_context.SaveChangesAsync();
返回操作(“索引”);
}
返回视图(物理);
}
创建
物理
我希望此解决方案能对您有所帮助。您确定没有其他问题吗?另外,您是否确保当您单击CreateNew时,它将调用您在上面指定的Create方法。是的,我提供的解决方案似乎一切正常,老实说,可能会有更好的解决方案我远没有经验的程序员,但这个解决方案现在起到了作用,所以我不会抱怨你确定你没有任何其他问题?另外,您是否确保当您单击CreateNew时,它将调用您在上面指定的Create方法。是的,我提供的解决方案似乎一切正常,老实说,可能会有更好的解决方案,我远没有经验的程序员,但这个解决方案现在起作用了,所以我不抱怨汉克,这似乎是比我提供的更好的解决方案。但据我所知,这只是创建该特性的第一步,所以可以将注释添加到我所写的物理文章中。最后,我将提交表单移到了文章中,并使用方法名称作为articleId。谢谢,这似乎是比我提供的更好的解决方案。但据我所知,这只是创建该特性的第一步,所以可以将注释添加到我所写的物理文章中。最后,我将提交表单移动到文章中,并使用方法名称作为articleId。
Request.Headers["Referer"].ToString();
[HttpGet]
public async Task<IActionResult> Create(string articleId)
{
Physics t = new Physics();
if(!string.IsNullOrEmpty(articleId))
{
t.ArticleID = articleId;
}
return View(t);
}
[HttpPost]
public async Task<IActionResult> Create([Bind("ID,CommentContext,UserName,ArticleID")]Physics physics)
{
if (ModelState.IsValid)
{
physics.UserName = HttpContext.User.Identity.Name;
//_context.Add(physics);
//await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(physics);
}
<h2>Create</h2>
<form asp-action="Create">
<div class="form-horizontal">
<input asp-for="ArticleID" type="hidden" />
<h4>Physics</h4>
<hr />
<div asp-validation-summary="ModelOnly" class="text-danger"></div>
<div class="form-group">
<label asp-for="CommentContext" class="col-md-2 control-label"></label>
<div class="col-md-10">
<input asp-for="CommentContext" class="form-control" />
<span asp-validation-for="CommentContext" class="text-danger" />
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-10">
<input type="submit" value="Create" class="btn btn-default" />
</div>
</div>
</div>
</form>