相关疑难解决方法(0)

ASP MVC 3中的一个视图中的两个模型

我有2个型号:

public class Person
{
    public int PersonID { get; set; }
    public string PersonName { get; set; }
}
public class Order
{
    public int OrderID { get; set; }
    public int TotalSum { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我想在SINGLE视图中编辑BOTH类的对象,所以我需要这样的东西:

@model _try2models.Models.Person
@model _try2models.Models.Order

@using(Html.BeginForm())
{
    @Html.EditorFor(x => x.PersonID)
    @Html.EditorFor(x => x.PersonName)
    @Html.EditorFor(x=>x.OrderID)
    @Html.EditorFor(x => x.TotalSum)
}
Run Code Online (Sandbox Code Playgroud)

当然,这不起作用:.cshtml文件中只允许一个"模型"语句.可能有一些解决方法吗?

viewmodel asp.net-mvc-3

92
推荐指数
5
解决办法
16万
查看次数

RenderAction RenderPartial

根据我的理解Html.RenderPartial,ASP.NET MVC版本HTML.RenderActionMicrosoft.Web.Mvc.ViewExtensions包含的内容与MVC Futures中包含的内容之间存在很大差异.

在我的应用程序中,我有许多页面由许多"小部件"(类型)组成,每个小部件都有自己的特定功能.

在我看来,使用该RenderAction方法更合理,因为每个小部件都有一个专用控制器,负责获取不同的数据并呈现专用视图(而不是只有一个控制器和一个唯一的视图模型传递给RenderPartial帮助器来呈现视图).

从测试中我已经完成了一个指向控制器中的Create动作方法的表单,如:

 <% using (Html.BeginForm("Create", "Message", FormMethod.Post, 
     new { id = "messageCreateForm" })) {%>
Run Code Online (Sandbox Code Playgroud)

并用它来调用它

 <% Html.RenderPartial("MessageForm",new MessageDTO()); %>
Run Code Online (Sandbox Code Playgroud)

将正确呈现:

<form id="messageCreateForm" method="post" action="/Message/Create">
Run Code Online (Sandbox Code Playgroud)

但是使用相同的等价物RenderAction(因此MessageForm在控制器上使用动作方法来渲染视图)将无法正确渲染:

 <% Html.RenderAction<MessageController>(m => m.MessageForm()); %>
Run Code Online (Sandbox Code Playgroud)

将呈现:

<form id="messageCreateForm" method="post" action="">
Run Code Online (Sandbox Code Playgroud)

请注意,该操作为空.

这是使用RenderAction帮助程序的正确方法吗?在这种情况下使用它是否正确?

更新:实际上将部分视图重命名为_MessageForm会正确地呈现表单.

asp.net-mvc

47
推荐指数
1
解决办法
4万
查看次数

ASP.NET MVC 4,在一个视图中有多个模型?

我正在开展一个小项目,我们有一个工程师表,一个项目表和一个元素表.工程师被分配了多个元素,元素可以有多个项目.我只是想知道如何展示工程师所具有的所有元素.

目前,我创建了一个将工程师与元素相关联的表.看起来有点像这样:

   [Engineer Elements]
[Engineer ID][Element ID]
   [1]           [2]
   [1]           [4]
   [2]           [2]
   [2]           [8]
Run Code Online (Sandbox Code Playgroud)

所以我确实有办法链接这两个表.能否让我更好地学习使用MVC将这些表连接在一起?

mysql vb.net asp.net asp.net-mvc asp.net-mvc-4

5
推荐指数
1
解决办法
2万
查看次数

如何从asp.net mvc中的元组发布一个项目

我是asp.net mvc的新手.与此参考.我正在使用元组将两个模型发送到一个视图中.我正在创建两个表单和两个提交按钮; 但是服务器上的值会变为null

@model Tuple<DAL.Models.LoginModel, DAL.Models.ForgotPassword>

@{ ViewBag.Title = "Login"; }

@using (Html.BeginForm("Login", "User", FormMethod.Post, new { ReturnUrl = ViewBag.ReturnUrl }))
{
    @Html.AntiForgeryToken()
    @Html.ValidationSummary(true)

    <fieldset>

        <ol>
            <li>
                @Html.LabelFor(m => m.Item1.EmailID)
                @Html.TextBoxFor(m => m.Item1.EmailID, new { @id = "txt_login_EmailID" })
                @Html.ValidationMessageFor(m => m.Item1.EmailID)
            </li>
            <li>
                @Html.LabelFor(m => m.Item1.Password)
                @Html.PasswordFor(m => m.Item1.Password)
                @Html.ValidationMessageFor(m => m.Item1.Password)
            </li>

            <li>
                <input type="submit" value="Login" id="btn_login" />

                @Html.CheckBoxFor(m => m.Item1.RememberMe)
                @Html.LabelFor(m => m.Item1.RememberMe, new { @class = "checkbox" })
            </li>
        </ol>

    </fieldset>
}
Run Code Online (Sandbox Code Playgroud)

这是同一页面中的另一种形式

  @using …
Run Code Online (Sandbox Code Playgroud)

asp.net-mvc razor asp.net-mvc-4

5
推荐指数
1
解决办法
7122
查看次数

带有负载和表单模型的 MVC 视图

我有一个像表单一样工作的视图,因此它加载一堆下拉列表并从ActionResult Index. 将所有数据输入表单后,我将使用Html.BeginForm("Create"调用 save 方法。的ActionResult Create(RequestForm model)。所以问题是我想使用两种模型,一种用于加载,一种用于保存数据。我现在正在做的是从 FormViewModel 和 RequestForm 模型中获取对象。

有一个更好的方法吗?

看法:

@model  FormViewModel
@using (Html.BeginForm("Create", "RequestForm", FormMethod.Post))
{
    @Html.ValidationSummary(true);
     <div class="k-content">
     <h4>* Country</h4>
     @Html.TextBoxFor(x => x.CountryId, new { id = "ddlCountry", @class = "form-control" })
     @Html.ValidationMessageFor(model => model.CountryId)
     </div>
}
Run Code Online (Sandbox Code Playgroud)

窗体视图模型

[Required]
public int? CountryId { get; set; }

public List<CountryModel> ListOfCountries { get; set; }
Run Code Online (Sandbox Code Playgroud)

申请表模型

public class RequestForm
{
    [Required]
    public int? CountryId { get; set; }
}
    
Run Code Online (Sandbox Code Playgroud)

控制器

public …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc razor

3
推荐指数
1
解决办法
207
查看次数

ASP.NET MVC 4 - 一个视图中的多个模型

我刚开始使用ASP.NET MVC 4开始新项目,我有疑问.

我如何在一个视图中使用多个模型(或ViewModel-s)?我通过Internet搜索,标准解决方案是"创建具有2个或更多属性的复杂视图模型",例如:

public class ComplexViewModel   
{
    public LoginModel LoginModel { get; set; }
    public CartModel CartModel { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但是,例如,在每个页面中,我将至少有 2个模型 - LoginModel和另一个模型(取决于页面).那么,我需要在每个ViewModel中定义LoginModel吗?

PS:我正在使用ASP.NET MVC 4,Entity Framework 5.

.net c# entity-framework mvvm asp.net-mvc-4

1
推荐指数
1
解决办法
5185
查看次数

我可以在MVC的同一视图中使用多个viewModel吗?

是否可以在同一视图中使用多个视图模型?

我试图通过@model属性使用viewmodel

但是,如果我可以使用第二个viewModel,我会陷入困境,我将第二个放置在哪里?

.net c# asp.net-mvc viewmodel

0
推荐指数
1
解决办法
461
查看次数