如何通过点击EF

时间:2016-02-15 16:07:33

标签: javascript c# jquery asp.net-mvc entity-framework

我想知道如何通过正确使用Entity Framework正确地将数据从右侧更改为左侧。数据是西班牙语,对不起,但我无法改变它。

这是我的视图,我只能更改“Titulo”,这意味着在标题和内容中,但我的DateTime和我的图像成为相关表格和int数据有问题。 Id更改,因为它出现在右侧(我不想在右侧显示图像和Id数据)。

enter image description here

要显示主要图像,我使用此@foreach,我从第二个表中获取名为“Noticias1”的数据,这意味着在英语News1中,每个新闻的图像数据和if (img != null && img.Nombre.Equals(@principalId+"_0"))显示我只有那个等于所选Id的校长Img(我会在内容后面显示其他的Img。)

这里是代码

@foreach (var n in Model) 
{
  var img = n.Noticias2.FirstOrDefault(); 
  if (img != null && img.Nombre.Equals(@principalId+"_0")) 
  {
    var imgRuta = @img.Ruta+@img.Nombre+@img.Extension; 
    <img id="currentprincipalImagen" src="@imgRuta" class="img-responsive" alt="Imagen de Marte" />
    <figcaption>
      <p id="currentPrincipalImagenTitulo">@img.Descripcion</p>
    </figcaption>
   }
}

这是我的完整视图代码

@{
    var format = "dddd, MMMM dd, yyyy"; 
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_LayoutPage.cshtml";
    int principalId = Model[0].IdNoticia; 
    string principalTitulo = Model[0].Titulo; 
    string principalContenido = Model[0].Contenido;
    DateTime principalFechaDesde = Convert.ToDateTime(Model[0].FeDesde);
    DateTime principalFechaHasta = Convert.ToDateTime(Model[0].FeHasta);
}

<script type="text/javascript">
    function changeDisplay(e) {

        var principalTitulo = $(e).text(); 
        var principalContenido = $(e).siblings(".Contenido:first").html(); 
        var principalId = $(e).siblings(".IdNoticia:first").html();
        var principalFechaDesde = $(e).siblings(".FeDesde").html();


        $("#currentprincipalTitulo").html(principalTitulo);
        $("#currentprincipalContenido").html(principalContenido);
        $("#currentprincipalId").html(principalId);
        $("#currentprincipalFechaDesde").html(principalFechaDesde);
    }
</script>

<!-- Principal -->
<div class="col-md-12 main">

    <div class="header sec-title-hd">
        <div class="bg-calendar"></div>
        <div class="col-md-7">
            <h5 class="pull-left">NOTICIAS</h5>
            <div>
                <a href="dashboard.html" class="btn sky-blue n-radius-b"> <img src="slider/img/arrow-left.png"> VOLVER</a>
            </div>
        </div>
    </div>

    <div class="content-inter">
        <div class="container-fluid sec-title-hd-sub">
            <div class="row">
                <div class="col-md-7">
                    <div>
                        <figure class="img_N">
                            @foreach (var n in Model) 
                            {
                                var img = n.Noticias2.FirstOrDefault(); 
                                if (img != null && img.Nombre.Equals(@principalId+"_0")) 
                                {
                                    var imgRuta = @img.Ruta+@img.Nombre+@img.Extension; 
                                    <img id="currentprincipalImagen" src="@imgRuta" class="img-responsive" alt="Imagen de Marte" />
                                    <figcaption>
                                        <p id="currentPrincipalImagenTitulo">@img.Descripcion</p>
                                    </figcaption>
                                }
                            }
                        </figure>
                    </div>
                    <div class="textnota">
                        <br>
                        <h6 id="currentprincipalId">@principalId</h6>
                        <h5 id="currentprincipalTitulo" class="titulo_N uppercase">@principalTitulo</h5>
                        <p id="currentprincipalFechaDesde" class="time">FeDesde: @principalFechaDesde.ToString(format)</p> 
                        <div class="noti_P">
                            <p id="currentprincipalContenido">@principalContenido</p>
                        </div>
                    </div>
                </div>
                <div class="col-md-5">
                    <!-- Right Side -->
                    @foreach (var n in Model)
                    {

                        <blockquote class="blockquote-nopadding bg-calendar-border-left">
                            <h6 class="IdNoticia">@n.IdNoticia</h6>
                            <p class="time_f feDesde">@n.FeDesde.ToString(format)</p>
                            <a href="#" onclick="changeDisplay(this)" class="titulo_N">@n.Titulo</a>
                            <p class="text-justify limit Contenido">@n.Contenido</p>
                        </blockquote>
                    }
                    Págnia @(Model.PageCount < Model.PageNumber ? 0 : Model.PageNumber) de @Model.PageCount
                    @Html.PagedListPager(Model, page => Url.Action("Index", new { page }))
                    <div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</div>

感谢。我知道在我的Jquery脚本代码中我没有什么可以改变图像但是我删除了这个因为我不能将关系改为左侧的@foreach以改变我的主要图像。我的英语不好我希望你能理解我。

这是关系,如果我点击第一个Id = 1我想从该Id获得图像,并且Id = 2,3,4 ...

enter image description here

1 个答案:

答案 0 :(得分:0)

我找到了自己的解决方案,问题出在我的Jquery代码中。也许这不是在Entity Framework中实现它的最佳方式,但这就是我解决这个问题的方法。 (如果你有更好的方法请分享)。

这是我全新的代码。

@{
    var format = "dddd, MMMM dd, yyyy"; 
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_LayoutPage.cshtml";
    int principalId = Model[0].IdNoticia; 
    string principalTitulo = Model[0].Titulo; 
    string principalContenido = Model[0].Contenido;
    DateTime principalFechaDesde = Convert.ToDateTime(Model[0].FeDesde);
    DateTime principalFechaHasta = Convert.ToDateTime(Model[0].FeHasta);
}

<script type="text/javascript">
    function changeDisplay(e) {

        var principalTitulo = $(e).text(); 
        var principalContenido = $(e).siblings(".Contenido:first").val(); 
        var principalId = $(e).siblings(".IdNoticia:first").val(); 
        var principalFechaDesde = $(e).siblings(".FeDesde:first").val();
        var principalFechaHasta = $(e).siblings(".FeHasta:first").val();
        var principalDescripcion = $(e).siblings(".Descripcion:first").val();
        var principalImagen = $(e).siblings(".imgRuta").val();


        $("#currentprincipalTitulo").html(principalTitulo);
        $("#currentprincipalContenido").html(principalContenido);
        $("#currentprincipalId").html(principalId);
        $("#currentprincipalFechaDesde").html(principalFechaDesde);
        $("currentprincipalFechaHasta").html(principalFechaHasta);
        $("#currentprincipalDescripcion").html(principalDescripcion);
        $("#currentprincipalImagen").attr("src", principalImagen);
    }
</script>

<!-- Principal -->
<div class="col-md-12 main">

    <div class="header sec-title-hd">
        <div class="bg-calendar"></div>
        <div class="col-md-7">
            <h5 class="pull-left">NOTICIAS</h5>
            <div>
                <a href="dashboard.html" class="btn sky-blue n-radius-b"> <img src="slider/img/arrow-left.png"> VOLVER</a>
            </div>
        </div>
    </div>

    <div class="content-inter">
        <div class="container-fluid sec-title-hd-sub">
            <div class="row">
                <div class="col-md-7">
                    <div>
                        <figure class="img_N">
                            @foreach (var n in Model) 
                            {
                                var img = n.Noticias2.FirstOrDefault(); 
                                if (img != null && img.Nombre.Equals(@principalId+"_0")) 
                                {
                                    <img id="currentprincipalImagen" src="@img.Ruta@img.Nombre@img.Extension" class="img-responsive" alt="@img.Nombre" />
                                    <figcaption>
                                        <p id="currentprincipalDescripcion">@img.Descripcion</p>
                                    </figcaption>
                                }
                            }
                        </figure>
                    </div>
                    <div class="textnota">
                        <br>
                        <h6 id="currentprincipalId">@principalId</h6>
                        <h5 id="currentprincipalTitulo" class="titulo_N uppercase">@principalTitulo</h5>
                        <p id="currentprincipalFechaDesde" class="time">Desde: @principalFechaDesde.ToString(format)</p> 
                        <p id="currentprincipalFechaHasta" class="time">Hasta: @principalFechaHasta.ToString(format)</p> 
                        <div class="noti_P">
                            <p id="currentprincipalContenido">@principalContenido</p>
                        </div>
                    </div>
                </div>
                <div class="col-md-5">
                    <!-- Right Side -->
                    @foreach (var n in Model)
                    {
                        <!-- Data mostrada -->
                        <blockquote class="blockquote-nopadding bg-calendar-border-left">
                            <p class="time_f">@n.FeDesde.ToString(format)</p>
                            <a href="#" onclick="changeDisplay(this)" class="titulo_N">@n.Titulo</a>
                            <p class="text-justify limit">@n.Contenido</p>

                            <!--Data Enviada al lado Izquierdo-->
                            <input class="IdNoticia" type="hidden" value="@n.IdNoticia" />
                            <input class="Contenido" type="hidden" value="@n.Contenido" />
                            <input class="FeDesde" type="hidden" value="Desde: @n.FeDesde.ToString(format)" />
                            <input class="FeHasta" type="hidden" value="Hasta: @n.FeHasta.ToString(format)" />
                            @foreach (var img in n.Noticias2)
                            {
                                var imgRuta = @img.Ruta + @img.Nombre + @img.Extension;
                                <input class="Descripcion" type="hidden" value="@img.Descripcion" />

                                <input class="imgRuta" type="hidden" value="@imgRuta" />
                            }

                        </blockquote>

                    }
            </div>
        </div>
    </div>
</div>

这里是新视图,

  

注意左侧的所有数据都来自id 2。

enter image description here