Asp.net mvc 将值从模态对话框局部视图发布到控制器
我有一个视图名称“编辑”: 当我中断ActionResult时,用户名和密码始终为空。它们不是viewmodel的一部分,只是需要传递给edit方法的参数Asp.net mvc 将值从模态对话框局部视图发布到控制器,asp.net-mvc,controller,partial-views,actionresult,Asp.net Mvc,Controller,Partial Views,Actionresult,我有一个视图名称“编辑”: 当我中断ActionResult时,用户名和密码始终为空。它们不是viewmodel的一部分,只是需要传递给edit方法的参数 非常感谢您的帮助。重要提示: @model EMMS.ViewModels.MaintenanceViewModel @using (Html.BeginForm()) { @Html.ValidationSummary(true) <fieldset style="width: 800px;">
非常感谢您的帮助。重要提示:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
当您在该div上使用jqueryui对话框时,它会将其从表单中删除。这就是为什么它们是空的
你可以在我的眼睛里看到
如果我是你,我会把表单分开,这样它们就不会嵌套
编辑视图:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
MVC的美妙之处在于恰当的分离
请记住,自定义ViewModel的要点是组合这些字段
另外:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
在获得关于需求的更多信息后,最好的解决方案是删除部分中的表单,并将用户名和密码添加到ViewModel:)重要提示:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
当您在该div上使用jqueryui对话框时,它会将其从表单中删除。这就是为什么它们是空的
你可以在我的眼睛里看到
如果我是你,我会把表单分开,这样它们就不会嵌套
编辑视图:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
MVC的美妙之处在于恰当的分离
请记住,自定义ViewModel的要点是组合这些字段
另外:
@model EMMS.ViewModels.MaintenanceViewModel
@using (Html.BeginForm())
{
@Html.ValidationSummary(true)
<fieldset style="width: 800px;">
<legend>Maintenance Details</legend>
<div class="editor">
@Html.LabelFor(model => model.EquipmentID)
@Html.TextBoxFor(model => model.EquipmentID, new { style = "width: 200px;" })
@Html.ValidationMessageFor(x => x.EquipmentID)
</div>
</fieldset>
}
<div id="dialog-validate-user" style="display: none;">
@Html.Partial("_ValidateUser")
</div>
在获得关于需求的更多信息后,最好的解决方案是删除部分中的表单,并在生成的HTML输出中将用户名和密码添加到ViewModel:),您的用户名和密码文本框的实际名称是什么?以下是输出:用户名密码,我觉得很合适。您是否能够验证数据实际上是从浏览器发送的?您可以检查HTTP请求以进行验证吗?使用IE10开发工具的请求正文不显示用户名/密码:IsNew=False&RowID=223872&EquipmentID=00178&TaskID=152&DateCompleted=6%2F10%2F1013&ElaspedTime=30&RunHours=1.000000&LoadHours=2.000000&CycleCount=3.000000&Result=Pass&Void=False&Comments=dfsfgsdfbtw,我故意在我发布的代码中保留了一些视图输入,以便在生成的HTML输出中缩短它,您的用户名和密码文本框的实际名称是什么?以下是输出:用户名密码,我觉得很合适。您是否能够验证数据实际上是从浏览器发送的?您可以检查HTTP请求以进行验证吗?使用IE10开发工具的请求正文不显示用户名/密码:IsNew=False&RowID=223872&EquipmentID=00178&TaskID=152&DateCompleted=6%2F10%2F1013&ElaspedTime=30&RunHours=1.000000&LoadHours=2.000000&CycleCount=3.000000&Result=Pass&Void=False&Comments=dfsfgsdfbtw,我故意在我发布的代码中保留了一些视图输入,以缩短它的长度。您的意思是,对于部分视图,控制器中有不同的操作结果吗?如果是这样,我仍然需要将用户名/密码传递给编辑方法PostActionResult。基本上,我需要在保存数据之前重新验证用户,并且用户名必须与数据一起保存,这是一种审计功能是的,这就是我的意思。您可以像我所展示的那样使用分隔,或者将用户名和密码作为viewModel的一部分。出于某种原因,jquery ui对话框会阻止输入包含在请求中。当我将用户名从jQueryUI对话框元素中取出时,它在视图模型中起作用,并且作为一个参数在文章的顶部看到了关于jQueryUI的信息。这是我的问题。将此标记为答案…您的意思是在局部视图的控制器中有不同的操作结果?如果是这样,我仍然需要将用户名/密码传递给编辑方法PostActionResult。基本上,我需要在保存数据之前重新验证用户,并且用户名必须与数据一起保存,这是一种审计功能是的,这就是我的意思。您可以像我所展示的那样使用分隔,或者将用户名和密码作为viewModel的一部分。出于某种原因,jquery ui对话框会阻止输入包含在请求中。当我将用户名从jQueryUI对话框元素中取出时,它在视图模型中起作用,并且作为一个参数在文章的顶部看到了关于jQueryUI的信息。这是我的问题。将此标记为答案。。。