Asp.net mvc 2 mvc-System.Web.mvc.ViewUserControl
嘿。。。 如何在post操作时将提交按钮的id从ViewUserControl发送到Controller?当我有正常的观点时,我可以这样写:Asp.net mvc 2 mvc-System.Web.mvc.ViewUserControl,asp.net-mvc-2,Asp.net Mvc 2,嘿。。。 如何在post操作时将提交按钮的id从ViewUserControl发送到Controller?当我有正常的观点时,我可以这样写: [HttpPost] public ActionResult KontaktIzabran(string myId) { //some code } 现在myId总是空的。。。。 这是我的用户控件 <%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl
[HttpPost]
public ActionResult KontaktIzabran(string myId)
{
//some code
}
现在myId总是空的。。。。
这是我的用户控件
<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<KontaktModel>" %>
<%@ OutputCache Duration="1200" VaryByParam="*" %>
<div id="sign-in-pop" class="popup">
<div class="modal fat-form">
<div class="clipper">
<div class="left"></div>
<div class="content">Sign In</div>
<div class="right"></div>
</div>
<% Html.BeginForm("IzborKontaktaPopUp", "Kontakt"); %>
<%: Html.ValidationSummary(true) %>
<div class="editor-field">
<%: Html.TextBoxFor(model => model.Naziv)%>
<%: Html.ValidationMessageFor(model => model.Naziv) %>
<input type="submit" value="Traži" name="submitButton" id="submitButton" />
<input type="submit" value="Dodaj novi" name="noviKontakt" />
</div>
<% Html.EndForm(); %>
</div>
</div>
登录
型号:Naziv)%>
型号:Naziv)%>
看起来您没有名为“myId”的表单字段,因此submit无法将其发送回控制器。相反,它将发回一个FormCollection,其中包含以下各项的当前值:
<%: Html.TextBoxFor(model => model.Naziv)%>
<input type="submit" value="Traži" name="submitButton" id="submitButton" />
<input type="submit" value="Dodaj novi" name="noviKontakt" />
model.Naziv)%%>
[HttpPost]
公共行动结果KontaktIzabran(字符串myId,字符串noviKontakt)
{
如果(!string.IsNullOrEmpty(noviKontakt))
{
//
//用于提交表单
}
其他的
{
//
//用于提交表单
}
...
}
你能显示你的视图/用户控件吗?我试过了,但两个字符串都是空的,不知道单击了哪个按钮。当我只有视图,但使用UserControl时,此选项有效。传递的值始终为空:(@Cipiripi,这很奇怪。单击的提交按钮的名称应该发送到服务器。您可以使用FireBug
查看请求中到底发送了哪些参数吗?您也不是嵌套表单,是吗?最后我看到您的用户控件中有一个OutputCache
指令。请尝试删除它以使确保它没有以某种方式干扰。此窗体的行为类似于弹出窗口,它是一种嵌套窗体。我尝试删除OutputCache,但所有内容仍然存在same@Cipiripi,在显示此用户控件后,是否在HTML中嵌套了
标记?如果是,则这是您的问题。这是不允许的。@Cipiripi,禁止嵌套HTML表单,否则您将获得未定义的行为。您可能需要删除外部表单或以不同方式重新组织标记,以避免嵌套表单。
[HttpPost]
public ActionResult KontaktIzabran(string myId, string noviKontakt)
{
if (!string.IsNullOrEmpty(noviKontakt))
{
// <input type="submit" value="Dodaj novi" name="noviKontakt" />
// was used to submit the form
}
else
{
// <input type="submit" value="Traži" name="submitButton" id="submitButton" />
// was used to submit the form
}
...
}