【问题标题】:How to Insert the values displayed in viewpage to backend如何将视图页面中显示的值插入到后端
【发布时间】:2013-07-09 13:11:49
【问题描述】:

您好,我正在使用 MVC3,我想将前端显示的值插入到后端的表格中。我该如何实现?

以下是我的观点,

@model TravelReady_SupervisorInput.Models.TravelReadyModel
@{
   Layout = "~/Views/Shared/_Layout.cshtml";
}
<script language="javascript">
     $(document).ready(function () {
     $("#es").hide();
     $("#n").hide();
     $("#date").hide();
});    
</script>
<h2 class="filter">Associate Details</h2>
<fieldset class="fs">
@foreach (var item in Model.lstTravelReadyEntities)
{   
     <label class="Detail1"><b>Associate Id : </b>@item.Var_AssoId </label>
     <label class="Detail1"><b>Vertical :</b>@item.Var_Vertical</label>
     <label class="Detail1"><b>Visa ValidFrom :</b>@item.Dt_VisaValidFrom </label><br /><br />
     <label class="Detail2"><b>Associate Name :</b>@item.Var_AssociateName</label>
     <label class="Detail2"><b>Account Name :</b>@item.Var_AccountName</label>
     <label class="Detail2"><b>Visa ValidDate :</b>@item.Dt_VisaValidTill</label><br /><br />
     <label class="Detail3"><b>Grade HR :</b>@item.Var_Grade</label>
     <label class="Detail3"><b>Project Name :</b>@item.Var_Project_Desc</label><br />          
 }
<h2> Response Details</h2><br />
Supervisor Response :
<input type="radio" class="radi" name="radio" value="Yes" onclick="javascript:Getyfunc();">Yes
<input type="radio" name="radio" value="No" onclick="javascript:Getnfunc()">No
<div id="es">
<label style="padding-left:10px;">*Supervisor Inputs : 
    <select id="dropdown"  name="dropdown">
        <option value="0">Select</option>
        <option value="1">Available for Deployment/Release</option>
        <option value="2">Travel Planned</option>
        <option value="3">To Deploy For Same Account</option>
    </select>
</label>
<label>Comments If Any  
    <textarea name="comments" id="cmts"></textarea>
</label>
<br />
<br />
<label id="date">*Date of Travel  
    <input type="text" id="datepicker" onclick="$(this).datepicker().datepicker ('show')"/>
</label>
<br />
<br />
</div>
<div id="n">
<label style="padding-left:10px;">*Supervisor Inputs :
    <select id="dropdown" name="dropdown">
        <option value="0">Select</option>
        <option value="1">Critical Project Resource</option>
        <option value="2">Associate Unwilling to Travel</option>
    </select>
</label>
<label>Comments If Any  
<textarea name="comments" id="cmts"></textarea></label>
<br />
<br />
</div>
<input type="submit" id="sbt" value="Submit" name="Submit" onclick="javascript:InsertDetails();"/>
</fieldset>

这是页面的子窗口。这里我也使用局部视图。我想获取页面中显示的所有值以插入到表格中。任何人都可以帮我解决这个问题

【问题讨论】:

  • 你能在这里提供任何其他信息吗?表意味着 SQL DB 后端?您在标签中标记为使用 AJAX...您是在尝试发布异步帖子吗?
  • 是的,我使用 Sql server 2008 作为后端

标签: c# jquery-ui jquery asp.net-ajax


【解决方案1】:

您应该为您的视图创建一个ViewModel,该视图将存储您的模型和您想要传递给控制器​​的其他数据,例如主管响应和评论。利用 MVC 扩展,例如 EditorFor、TextAreaFor 等

【讨论】:

  • 这里还需要调用一个 BeginForm 指向用 HTTP Post 装饰的控制器操作。这是基本的 MVC 内容,我建议您查看教程:asp.net/mvc/tutorials
【解决方案2】:

好的,所以您在这里所拥有的只是 Model-View-Controller 的 View 部分。您似乎有一个 ViewModel 用于在页面上显示列表,但您仍然缺少一些关键部分:

  1. 另一个 ViewModel 用于保存要发送到控制器的表单数据。假设您希望保持 View 的结构不变,您只需将此新 ViewModel 添加为现有 TravelReadyModel 的属性即可。
  2. 更改您的 HTML 表单元素以使用以“For”结尾的 HTML 帮助程序将值自动绑定回您的新 ViewModel。用 HTML.BeginForm() 将它们包围起来。
  3. 为数据的回发添加控制器方法。
  4. 假设您现在完全没有数据库后端支持,请使用实体框架来设置数据库访问权限。
  5. 在 MVC 应用程序的最简单形式中,Controller 将直接与实体框架 DataContext 交互并将新发布的 ViewModel 从 View 添加到 DB。

您需要在这里进行大量研究,但这应该可以帮助您入门。这是一个很棒的综合教程,它将引导您完成上述所有内容以及更多内容! http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

【讨论】:

    猜你喜欢
    • 2017-06-08
    • 2014-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多