MVC发送localPath到控制器
我是一个MVC的新手,所以任何提示等都会走很长的路,只是试图传回用户当前的网址,但没有运气。正在使用的代码如下。MVC发送localPath到控制器
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>
}
希望这足以看出问题。
干杯家伙
你为什么不从请求获取URL,而不是在模型中接受呢?
public string AddMini(TodoMini todo)
{
var url = HttpContext.Current.Request.Url;
//Rest of the POST logic
}
这就是给我的“/ ToDo/AddMini”,它是响应的url而不是请求的url。它应该发送像“/财产/编辑/ 3”的希望,有道理 – 2014-10-03 14:49:01
好的,我明白了。我认为GET和POST请求是对同一个URL进行的。 – 2014-10-03 14:51:33
我正在通过部分 – 2014-10-03 14:53:27
使用
在我的控制器
public ActionResult Index()
{
var todo = new TodoMini() {URL = Request.Url.LocalPath};
return View(todo);
}
,并考虑
@Html.HiddenFor(x=> x.URL)
应该工作,确保正确的值分配给url属性,本地路径只能将就返回路径主机名。在我的情况下,它返回/主页/如果我将l ocalhost:3934 /家庭,如果只是locahhost:端口/然后返回“/”
如果你不想将Url添加到你的模型中,然后你应该创建一个ViewModel类,它应该包含你在视图中使用的所有属性。
当您看到此视图时,HTML中有什么?什么被张贴到控制器? – CodeCaster 2014-10-03 14:17:20
在HTML中隐藏的外观类似于。该帖子在运行调试时具有在控制器中设置的值,但该URL设置为NULL。 – 2014-10-03 14:30:01