0

请参阅下面的 index.cshtml 代码:-

列表显示如下&字符串是标题,我将公司 ID 发送给控制器

@model MvcApplication3.Models.Company 

        @foreach (var item in Model)
        {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.CompanyName)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Template)
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Caption)
                </td>
                <td>
                    @Html.ActionLink("Edit", "Edit", new { id = item.CompanyID }) |
                    @Html.ActionLink("Details", "Details", new { id = item.CompanyID }) |
                    @Html.ActionLink("Delete", "Delete", new { id = item.CompanyID })
                </td>
            </tr>
        }
    </table>
</div>       

    @using (Html.BeginForm("GetCaption", "Company", FormMethod.Get))
    {
        @Html.TextBox("txtCmpID")
        <input id="btnGetCaption" type="submit" value="Get Caption" />
    }
    <span style="color: Black; position: absolute; top: 100px; left: 20px;">
        @text = 
    </span>

Controller.cs 文件中的代码:-

private DynaPortalContext db = new DynaPortalContext();

    //
    // GET: /Company/

    public ViewResult Index()
    {
        return View(db.Companies.ToList());
    }
    //
    // GET: /Company/caption
    [ActionName("GetCaption"),HttpPost]
    public ActionResult GetCaption(string txtCmpID)
    {
        Company company = db.Companies.Find(txtCmpID);
        return View("Index",company);
    } 

请告诉我如何将控制器的 GetCaption() 方法生成的标题显示到 @text=... 中的视图中

4

1 回答 1

0

您的GetCaption方法实际上并没有获得标题,而是获得了一家公司。假设Company包含Caption您要查找的内容,您可以简单地Caption在跨度内显示该属性:

<span style="color: Black; position: absolute; top: 100px; left: 20px;">@Model.Caption</span>

另外,当您使用 Get 而不是 Post 时,为什么要在表单中包含一个文本框?如果您没有将该值发布回服务器,则在此处使用输入捕获元素是多余且具有误导性的。最好使用跨度,就像使用标题一样。

MVC 的约定是创建与其对应的控制器操作同名的视图。在您的情况下,您有 2 个不同的控制器操作,它们都返回相同的视图,Index. 在Index控制器操作中,您将公司列表作为模型传递。在GetCaption控制器动作中,您将单个控制器动作传递给同一个Index视图,但这是行不通的。看起来您想要第二个视图来处理该GetCaption操作。目前尚不清楚您问题中的第二个代码块是在Index视图内还是另一个代码块?

于 2013-03-12T07:34:37.650 回答