【问题标题】:how can i assign value to textbox in MVC - Sharepoint Provider-hosted如何在 MVC 中为文本框赋值 - Sharepoint Provider-hosted
【发布时间】:2016-08-05 12:53:57
【问题描述】:

我想从控制器获取文本框并为其赋值。

这是我的文本框:

<input type="text" class="form-control" id="RegardingTo" name="RegardingTo" value="??????"/>

那么我想从这个动作中获得价值。

    public ActionResult Edit(int? RequestID)
    {

        if (RequestID <= 0)
        {
            return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
        }
        var ReqID = db.usp_RequestGetDetails(RequestID);
        if (ReqID == null)
        {
            return HttpNotFound();
        }

        return View();
    }

请帮忙:)

【问题讨论】:

  • 我正在尝试传递这个模型@model uRequestWeb.Models.usp_RequestGetDetails_Result
  • 但是当你 return View() 时你不会传递任何 Model 就像 @Smit Patel 向你展示的 return View(quote)
  • @jaimedanq 我试过这个 return View(ReqID);但我遇到了一个错误

标签: asp.net-mvc sharepoint provider-hosted


【解决方案1】:

是的,您可以使用模型为文本框赋值,首先创建一个模型,然后将该模型与您的视图链接。并在 Controller 中将值分配给模型并返回到视图。

或者在运行时,如果您想将值分配给您的文本框,那么您可以使用 Ajax 调用您的控制器并获取该值。

如有任何疑问,请回复。

【讨论】:

  • 感谢您的建议..您能提供一些有关您建议的链接吗?我只是一个新手..
【解决方案2】:

看看我在做什么来做同样的事情,用你的相关字段制作一个自定义模型,然后在controller 中为它们分配值,并将这个值传递给View,就是这样。 :)

自定义模型

public partial class QuoteParameter
{
    public Nullable<System.DateTime> TripStartDateLimit { get; set; }
    public Nullable<System.DateTime> TripEndDateLimit { get; set; }     
    public int PolicyId { get; set; }
}

控制器

public ActionResult Index()
{            
    QuoteParameter quote = new QuoteParameter();
    quote.TripEndDateLimit = DateTime.Now;
    quote.TripEndDateLimit = DateTime.Now;
    quote.PolicyId = 5;
    return View(quote);                     
}    

查看

@model EHIC.Models.Models.QuoteParameter

按 Razor 语法

<div class="row-fluid span12">
      <div class="span4">
           <p><strong>Trip Start Date Limit :</strong></p>
      </div>
      <div class="span5">
            @Html.TextBoxFor(model => model.TripStartDateLimit, "{0:dd/MM/yyyy}", new { @class = "form-control", @placeholder = "Policy StartDate Limit", @required = true })
      </div>
</div>

<div class="row-fluid span12">
      <div class="span4">
           <p><strong>Trip End Date Limit :</strong></p>
      </div>
      <div class="span5">
           @Html.TextBoxFor(model => model.TripEndDateLimit, "{0:dd/MM/yyyy}", new { @class = "form-control", @placeholder = "Policy EndDate Limit", @required = true })
      </div>
</div>

通过 HTML 代码

<input type="text" class="form-control" id="TripStartDateLimit" name="TripStartDateLimit" value="@Model.TripStartDateLimit"/>

<input type="text" class="form-control" id="TripEndDateLimit" name="TripEndDateLimit" value="@Model.TripEndDateLimit"/>

编辑

通过点击此按钮,您可以将PolicyId(作为示例)发送到控制器,然后您可以在那里做任何您想做的事情..!!!

<a href='../../controller/Edit?PolicyId=@Models.PolicyId'>
   <span title='Edit'></span>
</a>

@Html.ActionLink("Edit","Edit", new { id = item.RequestID })

您可以找到您从编辑页面发送的 PolicyId..

public ActionResult Edit(int id)
{            
    //Get your data from Store_procedure..
    return View();                     
}

【讨论】:

  • 感谢您的评论,我的意思是我的控制器的编辑操作,我需要 RequestID 的值将其所有值放入文本框。这可能吗?我正在使用存储过程来选择所述 ID 的所有值
  • 这就是我获得 ID @Html.ActionLink("Edit","Edit", new { id = item.RequestID })
  • 是的,所以更改控制器操作以获取 id 到其中,例如将 PolicyId 更改为 id
  • 如果item.RequestID的类型是int,通过使用这个你可以100%的获得一个id到控制器编辑方法中
  • 是的,我通过使用此@Html.ActionLink("Edit","Edit", new { id = item.RequestID }) 获得了 ID,但出现此错误 The model item passed into the dictionary属于“System.Data.Entity.Core.Objects.ObjectResult`1[uRequestWeb.Models.usp_RequestGetDetails_Result]”类型,但此字典需要“uRequestWeb.Models.usp_RequestGetDetails_Result”类型的模型项。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 2020-04-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多