我是MVC的完全新手,所以任何提示等都会有很长的路要走,只是试图传回当前的用户网上但没有运气的网址。正在使用的代码如下。
Controller
public string AddMini(TodoMini todo)
{
return todo.URL;
}
View
@using (Html.BeginForm("AddMini", "ToDo", FormMethod.Post)){
<li>
@Html.HiddenFor(p => p.URL, Request.Url.LocalPath)
<div class="form-group">
@Html.TextBoxFor(p => p.Description, new { @class = "form-control", @placeholder = "Add To-Do items", @autocomplete = "off" })
</div>
</li>
<li>
<div class="form-group">
<button type="submit" class="btn btn-primary">Submit</button>
</div>
</li>
}
希望这足以看出问题所在。
干杯球员
答案 0 :(得分:0)
为什么不从请求中获取Url而不是在模型中接收它?
public string AddMini(TodoMini todo)
{
var url = HttpContext.Current.Request.Url;
//Rest of the POST logic
}
答案 1 :(得分:0)
使用
在我的控制器中
public ActionResult Index()
{
var todo = new TodoMini() {URL = Request.Url.LocalPath};
return View(todo);
}
在视图中
@Html.HiddenFor(x=> x.URL)
应该有效,确保为Url属性分配了正确的值,本地路径只会在主机名之后返回路径。在我的情况下,如果我使用l ocalhost:3934 / Home ,如果只是 locahhost:port / ,则返回 / Home / 然后返回&#34; /&#34; 强>
如果您不想将Url添加到模型中,则应创建一个ViewModel类,该类应包含您在视图中使用的所有属性。