你好我試圖建立在我的網站,現在一些物理的文章評論部分我想,當我在解析路由參數
<a asp-route-articleid="smth" asp-action="Create">Create New</a>
單擊它創建了網址的網頁:http://localhost:65401/Physics/Create?articleid=smth
<h2>Create</h2>
<form asp-action="Create">
<div class="form-horizontal">
<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>
現在我的問題:我將如何去提取我的控制器中的articleid?到目前爲止,我試過這個
public async Task<IActionResult> Create([Bind("ID,CommentContext,UserName,ArticleID")] Physics physics, string articleid)
{
if (ModelState.IsValid)
{
physics.UserName = HttpContext.User.Identity.Name;
physics.ArticleID = articleid;
_context.Add(physics);
await _context.SaveChangesAsync();
return RedirectToAction("Index");
}
return View(physics);
}
以及其他絕望的嘗試到目前爲止沒有運氣。任何幫助,將不勝感激。
編輯:使用HttpContext.Request.GetEncodedUrl();
讓我http://localhost:65401/Physics/Create
但問題是我需要articleid=smth
值。
解決方案:
Request.Headers["Referer"].ToString();
將返回完整的URL字符串包括「條款ArticleID =不便的價值。
你確定你沒有任何其他問題嗎?你也確定當你點擊CreateNew它會調用你上面指定的Create方法。 – dotnetstep
是的,它似乎一切工作,因爲我想用我提供的解決方案,說實話,可能有更好的解決方案,我是遠離有經驗的程序員,但該解決方案現在做的伎倆,所以我不抱怨 – lobito